In message <[email protected]>, Olivier Certner 
write
s:
> The branch main has been updated by olce:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=895e1c6567d9561c86f8d20b47e92491
> 1bce989e
>
> commit 895e1c6567d9561c86f8d20b47e924911bce989e
> Author:     Olivier Certner <[email protected]>
> AuthorDate: 2026-02-03 22:25:46 +0000
> Commit:     Olivier Certner <[email protected]>
> CommitDate: 2026-02-03 22:43:49 +0000
>
>     sysctl(9): Booleans: Fix old value length discovery
>     
>     When calling sysctl(3) with a null 'oldp', i.e., length discovery mode,
>     'oldix' can be equal to 'oldlen', and we should not fail.
>     
>     More generally, let SYSCTL_OUT() and SYSCTL_IN() handle corner cases,
>     simply removing the comparisons between 'oldidx' and 'oldlen' and
>     'newidx' and 'newlen' done by hand as the test just after is an equality
>     that does not require to know if 'idx' is smaller than 'len'.
>     
>     PR:             292917
>     Reported by:    cy
>     Fixes:          406da392ef8d ("sysctl(9): Booleans: Accept integers to ea
> se knob conversion")
>     Sponsored by:   The FreeBSD Foundation
> ---
>  sys/kern/kern_sysctl.c | 4 ----
>  1 file changed, 4 deletions(-)
>
> diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c
> index dbe509b3e8e2..be0acb0a4a55 100644
> --- a/sys/kern/kern_sysctl.c
> +++ b/sys/kern/kern_sysctl.c
> @@ -1637,8 +1637,6 @@ sysctl_handle_bool(SYSCTL_HANDLER_ARGS)
>        * the output buffer, we assume that the caller expected an 'int'
>        * instead of a 'uint8_t'.
>        */
> -     if (req->oldidx >= req->oldlen)
> -             return (ENOMEM);
>       if (req->oldlen - req->oldidx == sizeof(int)) {
>               int temp_int = temp;
>  
> @@ -1655,8 +1653,6 @@ sysctl_handle_bool(SYSCTL_HANDLER_ARGS)
>                * Conversely, if the input buffer has exactly 4 bytes to read,
>                * use them all to produce a bool.
>                */
> -             if (req->newidx >= req->newlen)
> -                     return (ENOMEM);
>               if (req->newlen - req->newidx == sizeof(int)) {
>                       int temp_int;
>  
>

Thank you.
-- 
Cheers,
Cy Schubert <[email protected]>
FreeBSD UNIX:  <[email protected]>   Web:  https://FreeBSD.org
NTP:           <[email protected]>    Web:  https://nwtime.org

                        e**(i*pi)+1=0



Reply via email to