From d0fb9a95f40453321b82e23d9b322e79340b48c9 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Wed, 4 Aug 2010 17:36:36 +0000 Subject: [PATCH] Test for (fd < 0) before trying to FD_SET it --- rts/posix/Select.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- 1.7.10.4