diff options
author | Roger Dingledine <arma@torproject.org> | 2012-10-03 12:46:09 -0400 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2012-10-03 12:46:09 -0400 |
commit | 3d31771da9fcd0be5db21ac19a34d978bfe6d78d (patch) | |
tree | 722ee14ba813fef292909279263b8aa0f9826224 | |
parent | 65e85dba1be1c7ea6be0dca7e7e6bd7257d179c3 (diff) | |
download | tor-3d31771da9fcd0be5db21ac19a34d978bfe6d78d.tar tor-3d31771da9fcd0be5db21ac19a34d978bfe6d78d.tar.gz |
Free some more still-in-use memory at exit
-rw-r--r-- | changes/bug7029 | 3 | ||||
-rw-r--r-- | src/or/circuitbuild.c | 1 | ||||
-rw-r--r-- | src/or/config.c | 3 | ||||
-rw-r--r-- | src/or/connection.c | 3 | ||||
-rw-r--r-- | src/or/main.c | 4 | ||||
-rw-r--r-- | src/or/rephist.c | 2 |
6 files changed, 16 insertions, 0 deletions
diff --git a/changes/bug7029 b/changes/bug7029 new file mode 100644 index 000000000..a115b42f8 --- /dev/null +++ b/changes/bug7029 @@ -0,0 +1,3 @@ + o Minor bugfixes (code cleanliness): + - Free some more still-in-use memory at exit, to make hunting for + memory leaks easier. Resolves bug 7029. diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 09eef64ef..48cc8b715 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -5865,5 +5865,6 @@ entry_guards_free_all(void) clear_bridge_list(); smartlist_free(bridge_list); bridge_list = NULL; + circuit_build_times_free_timeouts(&circ_times); } diff --git a/src/or/config.c b/src/or/config.c index c04f2aa02..490050650 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -673,6 +673,9 @@ config_free_all(void) tor_free(torrc_defaults_fname); tor_free(the_tor_version); tor_free(global_dirfrontpagecontents); + + tor_free(the_short_tor_version); + tor_free(the_tor_version); } /** Make <b>address</b> -- a piece of information related to our operation as diff --git a/src/or/connection.c b/src/or/connection.c index d64c676bf..ec39f5474 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -4289,6 +4289,9 @@ connection_free_all(void) outgoing_addrs = NULL; } + tor_free(last_interface_ipv4); + tor_free(last_interface_ipv6); + #ifdef USE_BUFFEREVENTS if (global_rate_limit) bufferevent_rate_limit_group_free(global_rate_limit); diff --git a/src/or/main.c b/src/or/main.c index 74bb69672..ea08faa33 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -2477,6 +2477,10 @@ tor_free_all(int postfork) smartlist_free(closeable_connection_lst); smartlist_free(active_linked_connection_lst); periodic_timer_free(second_timer); +#ifndef USE_BUFFEREVENTS + periodic_timer_free(refill_timer); +#endif + if (!postfork) { release_lockfile(); } diff --git a/src/or/rephist.c b/src/or/rephist.c index f9c0b5beb..b9e7be1fc 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -3003,6 +3003,8 @@ rep_hist_free_all(void) digestmap_free(history_map, free_or_history); tor_free(read_array); tor_free(write_array); + tor_free(dir_read_array); + tor_free(dir_write_array); tor_free(last_stability_doc); tor_free(exit_bytes_read); tor_free(exit_bytes_written); |