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++;
signature.asc
Description: This is a digitally signed message part