On Sat, Oct 27, 2001 at 09:59:15PM -0400, Roland McGrath wrote:
> At a quick glance, the code for both (hurdselect.c) looks the same to me,
> but I don't have time right now to examine it too thoroughly.  If the
> problem with poll does not happen with select, then hurdselect.c is almost
> certainly the place that has the bug. 

Well, I found a discrepancy, which seems to explain the bug.

2001-10-28  Marcus Brinkmann  <[EMAIL PROTECTED]>

        * hurd/hurdselect.c (_hurd_select): Set type to zero if
        SELECT_RETURNED is not set before filling in the `revents'
        members of the user's array.


--- hurdselect.c.old    Sun Oct 28 03:52:43 2001
+++ hurdselect.c        Sun Oct 28 03:53:52 2001
@@ -398,6 +398,9 @@ _hurd_select (int nfds,
        const int type = d[i].type;
        int_fast16_t revents = 0;
 
+       if ((type & SELECT_RETURNED) == 0)
+         type = 0;
+
        if (type & SELECT_READ)
          revents |= POLLIN;
        if (type & SELECT_WRITE)

Thanks,
Marcus


_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to