]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
r16154@catbus: nickm | 2007-10-25 10:29:47 -0400
authorNick Mathewson <nickm@torproject.org>
Thu, 25 Oct 2007 14:31:15 +0000 (14:31 +0000)
committerNick Mathewson <nickm@torproject.org>
Thu, 25 Oct 2007 14:31:15 +0000 (14:31 +0000)
 Fix more memory leaks, with help from dmalloc.

svn:r12188

ChangeLog
src/or/dirserv.c
src/or/networkstatus.c
src/or/routerparse.c

index 5de8e7de31941180409211ae90a3b438f248114c..cd6715604e7183228a56fea20bc9c206f35595a2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,10 +2,20 @@ Changes in version 0.2.0.10-alpha - 2007-1?-??
   o Minor bugfixes:
     - Refuse to start if both ORPort and UseBridges are set. Bugfix
       on 0.2.0.x.
+
+  o Minor bugfixes (memory leaks):
     - Stop leaking memory every time we parse a v3 certificate. Bugfix
       on 0.2.0.1-alpha.
     - Stop leaking memory every time we load a v3 certificate. Bugfix
-      on 0.2.0.1-alpha.  Fixes Bug 536.
+      on 0.2.0.1-alpha.  Fixes Bug 536
+    - Stop leaking a cached networkstatus on exit.  Bugfix on
+      0.2.0.3-alpha.
+    - Stop leaking voter information every time we free a consensus.  Bugfix
+      on 0.2.0.3-alpha.
+    - Stop leaking signed data every time we check a voter signature.
+      Bugfix on 0.2.0.3-alpha.
+    - Stop leaking a signature every time we fail to parse a consensus or
+      a vote.  Bugfix on 0.2.0.3-alpha.
 
 
 Changes in version 0.2.0.9-alpha - 2007-10-24
index e9d552e8acb9bcc1e233d405d70f56db1eb15474..b651ce3507b7dc575c9cd4344564f3207232e26e 100644 (file)
@@ -2813,5 +2813,6 @@ dirserv_free_all(void)
     digestmap_free(cached_v2_networkstatus, _free_cached_dir);
     cached_v2_networkstatus = NULL;
   }
+  cached_dir_decref(cached_v3_networkstatus);
 }
 
index 0a4006abe89f16b286092766597c996bfbabec16..b8500d448e9dbabe6149e9487fa6fa0761b5713c 100644 (file)
@@ -231,6 +231,8 @@ networkstatus_vote_free(networkstatus_vote_t *ns)
       tor_free(voter->nickname);
       tor_free(voter->address);
       tor_free(voter->contact);
+      tor_free(voter->signature);
+      tor_free(voter);
     });
     smartlist_free(ns->voters);
   }
@@ -302,6 +304,7 @@ networkstatus_check_voter_signature(networkstatus_vote_t *consensus,
   } else {
     voter->good_signature = 1;
   }
+  tor_free(signed_digest);
   return 0;
 }
 
index 02f666bc41c3d482bd6c6a6972b8a58fc877a06a..10d04365076e2d2d28ad0393e7ba6b1e011e7e90 100644 (file)
@@ -2241,6 +2241,7 @@ networkstatus_parse_vote_from_string(const char *s, const char **eos_out,
     tor_free(voter->nickname);
     tor_free(voter->address);
     tor_free(voter->contact);
+    tor_free(voter->signature);
     tor_free(voter);
   }
   if (rs_tokens) {