1999-02-27 Roland McGrath <roland@baalperazim.frob.com>

* 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.
This commit is contained in:
Roland McGrath 1999-02-27 13:27:03 +00:00
parent 2ee511d907
commit c3aba1be90
1 changed files with 4 additions and 3 deletions

View 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;