[or-cvs] r11247: backport candidate: Fix a minor memory leak when we fail to (in tor/trunk: . src/or)

arma at seul.org arma at seul.org
Wed Aug 22 03:03:25 UTC 2007


Author: arma
Date: 2007-08-21 23:03:24 -0400 (Tue, 21 Aug 2007)
New Revision: 11247

Modified:
   tor/trunk/ChangeLog
   tor/trunk/src/or/circuitbuild.c
Log:
backport candidate:
Fix a minor memory leak when we fail to find enough suitable
servers to choose a circuit. Bugfix on 0.1.2.x.


Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2007-08-21 22:55:51 UTC (rev 11246)
+++ tor/trunk/ChangeLog	2007-08-22 03:03:24 UTC (rev 11247)
@@ -24,6 +24,8 @@
     - Stop putting the authentication cookie in a file called "0"
       in your working directory if you don't specify anything for the
       new CookieAuthFile option. Reported by Matt Edman.
+    - Fix a minor memory leak when we fail to find enough suitable
+      servers to choose a circuit. Bugfix on 0.1.2.x.
 
   o Minor features (misc):
     - Optionally (if built with -DEXPORTMALLINFO) export the output

Modified: tor/trunk/src/or/circuitbuild.c
===================================================================
--- tor/trunk/src/or/circuitbuild.c	2007-08-21 22:55:51 UTC (rev 11246)
+++ tor/trunk/src/or/circuitbuild.c	2007-08-22 03:03:24 UTC (rev 11247)
@@ -1072,7 +1072,6 @@
   int i;
 
   for (i = 0; i < smartlist_len(source); ++i) {
-    /*XXXX020 some of these are leaked somewhere.. fix that. */
     tmp = tor_malloc(sizeof(uint16_t));
     memcpy(tmp, smartlist_get(source, i), sizeof(uint16_t));
     smartlist_add(dest, tmp);
@@ -1272,7 +1271,7 @@
      * at least one predicted exit port. */
 
     int try;
-    smartlist_t *needed_ports = circuit_get_unhandled_ports(time(NULL));
+    smartlist_t *needed_ports;
 
     if (best_support == -1) {
       if (need_uptime || need_capacity) {
@@ -1290,6 +1289,7 @@
       log_notice(LD_CIRC, "All routers are down or won't exit -- choosing a "
                  "doomed exit at random.");
     }
+    needed_ports = circuit_get_unhandled_ports(time(NULL));
     for (try = 0; try < 2; try++) {
       /* try once to pick only from routers that satisfy a needed port,
        * then if there are none, pick from any that support exiting. */



More information about the tor-commits mailing list