From 4a53c54bf7ad66dbe879ee3c4f04daf264430fc2 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Tue, 22 Mar 2016 19:29:50 +0300 Subject: [PATCH] http: get fd from be layer during connection reset Since it can be non -1, and we must close it, otherwise we will have problems. And after this patch the following tests report fd 2307 instead of 2309 fd leaks: $ valgrind --leak-check=full --show-reachable=yes --track-fds=yes --error-exitcode=1 regress --no-fork http/cancel.. ==10853== FILE DESCRIPTORS: 2307 open at exit. --- http.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/http.c b/http.c index cce68ce6..d95cf1df 100644 --- a/http.c +++ b/http.c @@ -1329,6 +1329,9 @@ evhttp_connection_reset_(struct evhttp_connection *evcon) */ bufferevent_disable_hard_(evcon->bufev, EV_READ|EV_WRITE); + if (evcon->fd == -1) + evcon->fd = bufferevent_getfd(evcon->bufev); + if (evcon->fd != -1) { /* inform interested parties about connection close */ if (evhttp_connected(evcon) && evcon->closecb != NULL)