lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 14 Feb 2022 12:17:30 -0800
From:   "Paul E. McKenney" <paulmck@...nel.org>
To:     Willy Tarreau <w@....eu>
Cc:     Mark Brown <broonie@...nel.org>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 12/42] tools/nolibc/types: make FD_SETSIZE configurable

On Sun, Feb 13, 2022 at 09:53:01AM +0100, Willy Tarreau wrote:
> The macro was hard-coded to 256 but it's common to see it redefined.
> Let's support this and make sure we always allocate enough entries for
> the cases where it wouldn't be multiple of 32.
> 
> Signed-off-by: Willy Tarreau <w@....eu>

I queued both in place of their earlier versions, thank you!

							Thanx, Paul

> ---
> v2:
> - rebase on top of v2 of previous patch
> ---
>  tools/include/nolibc/types.h | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/include/nolibc/types.h b/tools/include/nolibc/types.h
> index a4dda0a22fc2..563dbbad0496 100644
> --- a/tools/include/nolibc/types.h
> +++ b/tools/include/nolibc/types.h
> @@ -45,7 +45,9 @@
>  #define DT_SOCK        0xc
>  
>  /* commonly an fd_set represents 256 FDs */
> +#ifndef FD_SETSIZE
>  #define FD_SETSIZE     256
> +#endif
>  
>  /* Special FD used by all the *at functions */
>  #ifndef AT_FDCWD
> @@ -72,7 +74,7 @@
>  
>  /* for select() */
>  typedef struct {
> -	uint32_t fd32[FD_SETSIZE / 32];
> +	uint32_t fd32[(FD_SETSIZE + 31) / 32];
>  } fd_set;
>  
>  #define FD_CLR(fd, set) do {                                            \
> @@ -101,7 +103,7 @@ typedef struct {
>  #define FD_ZERO(set) do {                                               \
>  		fd_set *__set = (set);                                  \
>  		int __idx;                                              \
> -		for (__idx = 0; __idx < FD_SETSIZE / 32; __idx ++)      \
> +		for (__idx = 0; __idx < (FD_SETSIZE+31) / 32; __idx ++) \
>  			__set->fd32[__idx] = 0;                         \
>  	} while (0)
>  
> -- 
> 2.35.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ