Fix potential fd leak in listener_read_cb()

As pointed out by harlan_ in #libevent after running a coverity sweep.
If the listener is free'd, 'new_fd' is never closed.
This commit is contained in:
Mark Ellzey 2015-04-27 22:43:04 -04:00
parent 6e7a580c15
commit a695a720cd

View File

@ -421,6 +421,8 @@ listener_read_cb(evutil_socket_t fd, short what, void *p)
if (lev->refcnt == 1) { if (lev->refcnt == 1) {
int freed = listener_decref_and_unlock(lev); int freed = listener_decref_and_unlock(lev);
EVUTIL_ASSERT(freed); EVUTIL_ASSERT(freed);
evutil_closesocket(new_fd);
return; return;
} }
--lev->refcnt; --lev->refcnt;