aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2012-10-03 12:46:09 -0400
committerRoger Dingledine <arma@torproject.org>2012-10-03 12:46:09 -0400
commit3d31771da9fcd0be5db21ac19a34d978bfe6d78d (patch)
tree722ee14ba813fef292909279263b8aa0f9826224
parent65e85dba1be1c7ea6be0dca7e7e6bd7257d179c3 (diff)
downloadtor-3d31771da9fcd0be5db21ac19a34d978bfe6d78d.tar
tor-3d31771da9fcd0be5db21ac19a34d978bfe6d78d.tar.gz
Free some more still-in-use memory at exit
-rw-r--r--changes/bug70293
-rw-r--r--src/or/circuitbuild.c1
-rw-r--r--src/or/config.c3
-rw-r--r--src/or/connection.c3
-rw-r--r--src/or/main.c4
-rw-r--r--src/or/rephist.c2
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);