Package: glibc Version: 2.19-11 Severity: serious The return value from the select function on Hurd is sometimes too high. I.e. the value returned is greater than the total number of bits set in the fd_set variables. This causes problems for code that expect the value to be accurate, and causes FTBFS on Hurd for other packages due to failing tests suites, e.g. globus-ftp-client, globus-ftp-control, globus-io and globus-scheduler-event-generator. The bug is introduced by the patch debian/patches/hurd-i386/tg-poll_errors_fixes.diff The attached patch can be applied to fix the issue. Mattias
--- glibc-2.19/hurd/hurdselect.c.orig 2014-10-11 05:55:04.000000000 +0000
+++ glibc-2.19/hurd/hurdselect.c 2014-10-11 14:23:17.000000000 +0000
@@ -551,7 +551,15 @@
readiness of the erring object and the next call hopefully
will get the error again. */
if (type & SELECT_ERROR)
- type = SELECT_ALL;
+ {
+ type = 0;
+ if (readfds != NULL && FD_ISSET (i, readfds))
+ type |= SELECT_READ;
+ if (writefds != NULL && FD_ISSET (i, writefds))
+ type |= SELECT_WRITE;
+ if (exceptfds != NULL && FD_ISSET (i, exceptfds))
+ type |= SELECT_URG;
+ }
if (type & SELECT_READ)
ready++;
Attachment:
signature.asc
Description: This is a digitally signed message part