aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2013-04-18 11:28:11 -0400
committerNick Mathewson <nickm@torproject.org>2013-04-18 11:28:11 -0400
commit1b5320bfe3d178c20357b9860087147a6cbb099b (patch)
tree2948e5d3f4e0c77c4eacdc02313c6eade8258826
parentda30adcf0fd048d1f2e7a4b76e2c880cc3824e6e (diff)
parent06efbbb47ef28dd24cb4482f5b82204918891f41 (diff)
downloadtor-1b5320bfe3d178c20357b9860087147a6cbb099b.tar.gz
tor-1b5320bfe3d178c20357b9860087147a6cbb099b.zip
Merge remote-tracking branch 'origin/maint-0.2.4'
-rw-r--r--changes/bug87196
-rw-r--r--src/or/networkstatus.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/changes/bug8719 b/changes/bug8719
new file mode 100644
index 0000000000..c05b79ddec
--- /dev/null
+++ b/changes/bug8719
@@ -0,0 +1,6 @@
+ o Major bugfixes (memory leak):
+ - Avoid a memory leak where we would leak a consensus body when we find
+ that a consensus which we couldn't previously verify due to missing
+ certificates is now verifiable. Fixes bug 8719; bugfix on
+ 0.2.0.10-alpha.
+
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index f5428f165d..8715841544 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -1878,11 +1878,12 @@ networkstatus_note_certs_arrived(void)
if (!waiting->consensus)
continue;
if (networkstatus_check_consensus_signature(waiting->consensus, 0)>=0) {
+ char *waiting_body = waiting->body;
if (!networkstatus_set_current_consensus(
- waiting->body,
+ waiting_body,
networkstatus_get_flavor_name(i),
NSSET_WAS_WAITING_FOR_CERTS)) {
- tor_free(waiting->body);
+ tor_free(waiting_body);
}
}
}