# HG changeset patch # User Kim Alvefur # Date 1539276732 -7200 # Node ID f3935aa4cc7e7f6fb901b11cfce49e907079ced4 # Parent 9b26a50cdfe3a9431488b93135855001d23fedd9 util.poll: Handle failed epoll FD creation diff -r 9b26a50cdfe3 -r f3935aa4cc7e util-src/poll.c --- a/util-src/poll.c Thu Oct 11 18:50:04 2018 +0200 +++ b/util-src/poll.c Thu Oct 11 18:52:12 2018 +0200 @@ -386,8 +386,19 @@ /* Initialize state */ #ifdef USE_EPOLL - state->epoll_fd = epoll_create1(0); + state->epoll_fd = -1; state->processed = 0; + + int epoll_fd = epoll_create1(EPOLL_CLOEXEC); + + if(epoll_fd <= 0) { + lua_pushnil(L); + lua_pushstring(L, strerror(errno)); + lua_pushinteger(L, errno); + return 3; + } + + state->epoll_fd = epoll_fd; #else FD_ZERO(&state->wantread); FD_ZERO(&state->wantwrite);