From: Bruno Haible Date: Mon, 24 Apr 2023 19:28:32 +0000 (+0200) Subject: select, pselect: Fix test failure on native Windows. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=73ff086456eb4e4993fe6a00eba8762e24505df5;p=gnulib.git select, pselect: Fix test failure on native Windows. * lib/select.c (rpl_select): Fail if nfds is out-of-range. * lib/pselect.c (pselect): Likewise. --- diff --git a/ChangeLog b/ChangeLog index a0fee03c08..150086f4a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2023-04-24 Bruno Haible + + select, pselect: Fix test failure on native Windows. + * lib/select.c (rpl_select): Fail if nfds is out-of-range. + * lib/pselect.c (pselect): Likewise. + 2023-04-24 Bruno Haible ftell, ftello: Fix recognition of pipes on native Windows. diff --git a/lib/pselect.c b/lib/pselect.c index f5d21e1048..52d3837878 100644 --- a/lib/pselect.c +++ b/lib/pselect.c @@ -45,6 +45,12 @@ pselect (int nfds, fd_set *restrict rfds, sigset_t origmask; struct timeval tv, *tvp; + if (nfds < 0 || nfds > FD_SETSIZE) + { + errno = EINVAL; + return -1; + } + if (timeout) { if (! (0 <= timeout->tv_nsec && timeout->tv_nsec < 1000000000)) diff --git a/lib/select.c b/lib/select.c index 3d3efff3de..6b6ca4154c 100644 --- a/lib/select.c +++ b/lib/select.c @@ -279,8 +279,11 @@ rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds, int i, fd, rc; clock_t tend; - if (nfds > FD_SETSIZE) - nfds = FD_SETSIZE; + if (nfds < 0 || nfds > FD_SETSIZE) + { + errno = EINVAL; + return -1; + } if (!timeout) wait_timeout = INFINITE;