Author: Nick Mathewson <ni...@to...>
Date: Thu, 20 Dec 2012 11:47:09 -0500
Subject: Avoid leaking fds on evconnlistener with no callback set
Commit: 69db2610be9b6b0d67f3dfda28a6059d3b2fb82f
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.
---
listener.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/listener.c b/listener.c
index d21e8db..2b67b52 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;
}
--
1.7.4.1
|