From: Nick Mathewson Date: Thu, 20 Dec 2012 16:47:09 +0000 (-0500) Subject: Avoid leaking fds on evconnlistener with no callback set X-Git-Tag: release-2.1.3-alpha~61^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=69db2610be9b6b0d67f3dfda28a6059d3b2fb82f;p=libevent Avoid leaking fds on evconnlistener with no callback set There's no way to retrieve an fd from an evconnlistener whose callback has been cleared, so we had better close any such fd. Found by coverity; CID 739725. --- diff --git a/listener.c b/listener.c index d21e8dbe..2b67b525 100644 --- a/listener.c +++ b/listener.c @@ -407,6 +407,7 @@ listener_read_cb(evutil_socket_t fd, short what, void *p) evutil_make_socket_nonblocking(new_fd); if (lev->cb == NULL) { + evutil_closesocket(new_fd); UNLOCK(lev); return; }