# HG changeset patch # User jbe # Date 1429291223 -7200 # Node ID 2097b1835d9685f5fc9baa38b020f7d091472dc9 # Parent 46ebdc5bf8257e9dffcf5176f0da3b851978c876 Check if file descriptors are in valid range before using them for select diff -r 46ebdc5bf825 -r 2097b1835d96 moonbridge_io.c --- a/moonbridge_io.c Thu Apr 16 22:20:33 2015 +0200 +++ b/moonbridge_io.c Fri Apr 17 19:20:23 2015 +0200 @@ -1043,6 +1043,7 @@ if (!isnum) luaL_error(L, "Expected integer (file descriptor), I/O handle, or listener in table key"); } } + if (fd < 0 || fd >= FD_SETSIZE) luaL_error(L, "File descriptor out of valid range"); FD_SET(fd, &readfds); if (fd+1 > nfds) nfds = fd+1; } @@ -1063,6 +1064,7 @@ fd = lua_tointegerx(L, -2, &isnum); if (!isnum) luaL_error(L, "Expected integer (file descriptor) or I/O handle in table key"); } + if (fd < 0 || fd >= FD_SETSIZE) luaL_error(L, "File descriptor out of valid range"); FD_SET(fd, &writefds); if (fd+1 > nfds) nfds = fd+1; }