Re: git: c18a16ebcf5b - main - kern_proc_kqueues_out(): maxlen == -1 means there is no maxlen

From: Ronald Klop <ronald-lists_at_klop.ws>
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.