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.