summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-07 22:07:38 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-07 22:07:38 +0100
commitd5131d3c1e4b71b5ce3bcd629ef019812b1412cf (patch)
treeda73ee19beaa35ca2a583df7bcc06a901cf96bbe
parent5d2556c4fa4629b1c3adf59f29c699f00d4122ea (diff)
downloadglibc-d5131d3c1e4b71b5ce3bcd629ef019812b1412cf.tar.gz
glibc-d5131d3c1e4b71b5ce3bcd629ef019812b1412cf.tar.xz
glibc-d5131d3c1e4b71b5ce3bcd629ef019812b1412cf.zip
hurd: allow poll() array bigger than FD_SETSIZE
-rw-r--r--ChangeLog2
-rw-r--r--hurd/hurdselect.c2
2 files changed, 3 insertions, 1 deletions
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  <roland@hack.frob.com>
 
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;