From d5131d3c1e4b71b5ce3bcd629ef019812b1412cf Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 7 Feb 2015 22:07:38 +0100 Subject: hurd: allow poll() array bigger than FD_SETSIZE --- ChangeLog | 2 ++ hurd/hurdselect.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 0474b0f035..fa48858f52 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,8 @@ SF_ARCHIVED, SF_IMMUTABLE, SF_APPEND, SF_NOUNLINK, SF_SNAPSHOT): Declare macros. [__USE_MISC] (chflags, fchflags): Declare functions. + * hurd/hurdselect.c (_hurd_select): In the poll case, do not return + EINVAL when nfds is greater than FD_SETSIZE. 2015-02-06 Roland McGrath diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c index 279ee5ec19..2996be2c8b 100644 --- a/hurd/hurdselect.c +++ b/hurd/hurdselect.c @@ -67,7 +67,7 @@ _hurd_select (int nfds, assert (sizeof (union typeword) == sizeof (mach_msg_type_t)); assert (sizeof (uint32_t) == sizeof (mach_msg_type_t)); - if (nfds < 0 || nfds > FD_SETSIZE) + if (nfds < 0 || (pollfds == NULL && nfds > FD_SETSIZE)) { errno = EINVAL; return -1; -- cgit 1.4.1