1999-02-27 Roland McGrath <roland@baalperazim.frob.com>
authorroland <roland>
Sat, 27 Feb 1999 13:27:03 +0000 (13:27 +0000)
committerroland <roland>
Sat, 27 Feb 1999 13:27:03 +0000 (13:27 +0000)
* hurd/hurdselect.c (_hurd_select): When bailing for bogus fd, don't
try to _hurd_port_free a lower-numbered descriptor that was not in any
fd_set.

hurd/hurdselect.c

index e65def5..4e9bc39 100644 (file)
@@ -1,5 +1,5 @@
 /* Guts of both `select' and `poll' for Hurd.
-   Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
+   Copyright (C) 1991,92,93,94,95,96,97,98, 99 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -172,8 +172,9 @@ _hurd_select (int nfds,
                {
                  /* If one descriptor is bogus, we fail completely.  */
                  while (i-- > 0)
-                   _hurd_port_free (&d[i].cell->port, &d[i].ulink,
-                                    d[i].io_port);
+                   if (d[i].type != 0)
+                     _hurd_port_free (&d[i].cell->port, &d[i].ulink,
+                                      d[i].io_port);
                  break;
                }
              lastfd = i;