aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2018-09-12 17:51:52 -0400
committerDavid Goulet <dgoulet@torproject.org>2018-09-12 17:51:56 -0400
commit4b646e30d8364e56fb6ae4ce5850f01e714eabcb (patch)
tree93e47480b72fe1726552815dda531e3834ce86a9
parentfed2c26e6028ee2ab77ad47ce91b6676fc2b31a2 (diff)
downloadtor-4b646e30d8364e56fb6ae4ce5850f01e714eabcb.tar.gz
tor-4b646e30d8364e56fb6ae4ce5850f01e714eabcb.zip
conn: Fix memleaks in retry_all_listeners
Fixes #27670 Signed-off-by: David Goulet <dgoulet@torproject.org>
-rw-r--r--src/core/mainloop/connection.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c
index 3c057ad146..7ef7423b13 100644
--- a/src/core/mainloop/connection.c
+++ b/src/core/mainloop/connection.c
@@ -2900,6 +2900,9 @@ retry_all_listeners(smartlist_t *new_conns, int close_all_noncontrol)
} SMARTLIST_FOREACH_END(conn);
smartlist_free(listeners);
+ /* Cleanup any remaining listener replacement. */
+ SMARTLIST_FOREACH(replacements, listener_replacement_t *, r, tor_free(r));
+ smartlist_free(replacements);
if (old_or_port != router_get_advertised_or_port(options) ||
old_or_port_ipv6 != router_get_advertised_or_port_by_af(options,