From a695a720cda892c270736d127333d73553842094 Mon Sep 17 00:00:00 2001 From: Mark Ellzey Date: Mon, 27 Apr 2015 22:43:04 -0400 Subject: [PATCH] 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. --- listener.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/listener.c b/listener.c index 172d2927..2af14e3a 100644 --- a/listener.c +++ b/listener.c @@ -421,6 +421,8 @@ listener_read_cb(evutil_socket_t fd, short what, void *p) if (lev->refcnt == 1) { int freed = listener_decref_and_unlock(lev); EVUTIL_ASSERT(freed); + + evutil_closesocket(new_fd); return; } --lev->refcnt;