From: Ian Lynagh Date: Wed, 4 Aug 2010 17:36:36 +0000 (+0000) Subject: Test for (fd < 0) before trying to FD_SET it X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=d0fb9a95f40453321b82e23d9b322e79340b48c9 Test for (fd < 0) before trying to FD_SET it --- diff --git a/rts/posix/Select.c b/rts/posix/Select.c index d36e122..932fc79 100644 --- a/rts/posix/Select.c +++ b/rts/posix/Select.c @@ -156,7 +156,7 @@ awaitEvent(rtsBool wait) case BlockedOnRead: { int fd = tso->block_info.fd; - if (fd >= (int)FD_SETSIZE) { + if ((fd >= (int)FD_SETSIZE) || (fd < 0)) { barf("awaitEvent: descriptor out of range"); } maxfd = (fd > maxfd) ? fd : maxfd; @@ -167,7 +167,7 @@ awaitEvent(rtsBool wait) case BlockedOnWrite: { int fd = tso->block_info.fd; - if (fd >= (int)FD_SETSIZE) { + if ((fd >= (int)FD_SETSIZE) || (fd < 0)) { barf("awaitEvent: descriptor out of range"); } maxfd = (fd > maxfd) ? fd : maxfd;