]> granicus.if.org Git - libevent/commit
http: avoid leaking of fd in evhttp_connection_free()
authorAzat Khuzhin <a3at.mail@gmail.com>
Tue, 22 Mar 2016 20:36:19 +0000 (23:36 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Wed, 23 Mar 2016 09:53:51 +0000 (12:53 +0300)
commitf0e13411795203c6a160dfc8d8f0fcb1913905ff
tree76ffdd1cefa90b24b1873872a2c01f64b4ffa2b5
parent4a53c54bf7ad66dbe879ee3c4f04daf264430fc2
http: avoid leaking of fd in evhttp_connection_free()

Since we do close fd there if we don't have BEV_OPT_CLOSE_ON_FREE, and
evcon->fd can be incorrect (non -1), so just get it from the underlying
bufferevent to fix this.

And after this patch the following tests report 0 instead of 2307 fd leaks:
$ valgrind --leak-check=full --show-reachable=yes --track-fds=yes --error-exitcode=1 regress --no-fork http/cancel..
==11299== FILE DESCRIPTORS: 3 open at exit.

And this is stdin/stderr/stdout.
http.c