Re: git: c18a16ebcf5b - main - kern_proc_kqueues_out(): maxlen == -1 means there is no maxlen
- Reply: Olivier Certner : "Re: git: c18a16ebcf5b - main - kern_proc_kqueues_out(): maxlen == -1 means there is no maxlen"
- In reply to: Konstantin Belousov : "git: c18a16ebcf5b - main - kern_proc_kqueues_out(): maxlen == -1 means there is no maxlen"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 24 Mar 2025 15:06:28 UTC
Van: Konstantin Belousov <kib@FreeBSD.org>
Datum: maandag, 24 maart 2025 05:54
Aan: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Onderwerp: git: c18a16ebcf5b - main - kern_proc_kqueues_out(): maxlen == -1 means there is no maxlen
>
> The branch main has been updated by kib:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=c18a16ebcf5bf0bad19be10f58d9f42cbc079057
>
> commit c18a16ebcf5bf0bad19be10f58d9f42cbc079057
> Author: Konstantin Belousov <kib@FreeBSD.org>
> AuthorDate: 2025-03-24 04:29:15 +0000
> Commit: Konstantin Belousov <kib@FreeBSD.org>
> CommitDate: 2025-03-24 04:48:08 +0000
>
> kern_proc_kqueues_out(): maxlen == -1 means there is no maxlen
>
> Sponsored by: The FreeBSD Foundation
> MFC after: 1 week
> ---
> sys/kern/kern_event.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
> index e891cb7c094a..eb77a5064113 100644
> --- a/sys/kern/kern_event.c
> +++ b/sys/kern/kern_event.c
> @@ -2974,13 +2974,21 @@ kern_proc_kqueues_out(struct proc *p, struct sbuf *sb, size_t maxlen,
> bool compat32)
> {
> struct sbuf *s, sm;
> + size_t sb_len;
> int error;
>
> - s = sbuf_new(&sm, NULL, maxlen, SBUF_FIXEDLEN);
> + if (maxlen == -1 || maxlen == 0)
> + sb_len = 128;
> + else
> + sb_len = maxlen;
> + s = sbuf_new(&sm, NULL, sb_len, maxlen == -1 ? SBUF_AUTOEXTEND :
> + SBUF_FIXEDLEN);
> error = kern_proc_kqueues_out1(curthread, p, s, compat32);
> sbuf_finish(s);
> - if (error == 0)
> - sbuf_bcat(sb, sbuf_data(s), MIN(sbuf_len(s), maxlen));
> + if (error == 0) {
> + sbuf_bcat(sb, sbuf_data(s), MIN(sbuf_len(s), maxlen == -1 ?
> + SIZE_T_MAX : maxlen));
> + }
> sbuf_delete(s);
> return (error);
> }
>
>
>
>
As maxlen is of the unsigned type size_t, how can it be -1?
Or am I mistaken on this?
Regards,
Ronald.