diff options
Diffstat (limited to 'rts/posix/Select.c')
-rw-r--r-- | rts/posix/Select.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/rts/posix/Select.c b/rts/posix/Select.c index d36e122079..932fc792fe 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; |