]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix two rare leaks spotted by rieo.
authorNick Mathewson <nickm@torproject.org>
Sun, 24 Jan 2010 01:46:38 +0000 (20:46 -0500)
committerNick Mathewson <nickm@torproject.org>
Sun, 24 Jan 2010 01:46:38 +0000 (20:46 -0500)
src/or/router.c

index dab4cb8938ea74a5d4364205bf8dadc2778d4341..97f411dcd6d06ba478ab0e20c8028316cc34b3e5 100644 (file)
@@ -1384,6 +1384,7 @@ router_rebuild_descriptor(int force)
   if (extrainfo_dump_to_string(ei->cache_info.signed_descriptor_body, 8192,
                                ei, get_identity_key()) < 0) {
     log_warn(LD_BUG, "Couldn't generate extra-info descriptor.");
+    routerinfo_free(ri);
     extrainfo_free(ei);
     return -1;
   }
@@ -1400,6 +1401,8 @@ router_rebuild_descriptor(int force)
   if (router_dump_router_to_string(ri->cache_info.signed_descriptor_body, 8192,
                                    ri, get_identity_key())<0) {
     log_warn(LD_BUG, "Couldn't generate router descriptor.");
+    routerinfo_free(ri);
+    extrainfo_free(ei);
     return -1;
   }
   ri->cache_info.signed_descriptor_len =
@@ -1885,6 +1888,7 @@ extrainfo_dump_to_string(char *s, size_t maxlen, extrainfo_t *extrainfo,
       log_err(LD_BUG,
               "We just generated an extrainfo descriptor we can't parse.");
       log_err(LD_BUG, "Descriptor was: <<%s>>", s);
+      tor_free(s_dup);
       return -1;
     }
     tor_free(s_dup);