Software /
code /
prosody
Changeset
9475:9b26a50cdfe3
util.poll: Early return from __gc in case of no valid epoll FD
This could happen if the epoll FD has already been closed or
the epoll_create call failed
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 11 Oct 2018 18:50:04 +0200 |
parents | 9474:619ba78709a5 |
children | 9476:f3935aa4cc7e |
files | util-src/poll.c |
diffstat | 1 files changed, 4 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/util-src/poll.c Thu Oct 11 17:01:45 2018 +0200 +++ b/util-src/poll.c Thu Oct 11 18:50:04 2018 +0200 @@ -351,6 +351,10 @@ int Lgc(lua_State *L) { struct Lpoll_state *state = luaL_checkudata(L, 1, STATE_MT); + if(state->epoll_fd != -1) { + return 0; + } + if(close(state->epoll_fd) == 0) { state->epoll_fd = -1; }