Переглянути джерело

r9567@Kushana: nickm | 2006-11-20 11:05:59 -0500
Fix leak in choose_good_exit_server_general()


svn:r8969

Nick Mathewson 17 роки тому
батько
коміт
a667f2e514
2 змінених файлів з 6 додано та 1 видалено
  1. 1 0
      ChangeLog
  2. 5 1
      src/or/circuitbuild.c

+ 1 - 0
ChangeLog

@@ -18,6 +18,7 @@ Changes in version 0.1.2.4-alpha - 2006-11-??
       the client sends data.  Previously, the connection would just hang
       until the client sent data. (Patch from tup based on patch from
       Zajcev Evgeny.)
+    - Fix a memory leak when we fail to pick an exit node.
 
   o Minor bugfixes
     - Don't log spurious warnings when we see a circuit close reason we

+ 5 - 1
src/or/circuitbuild.c

@@ -1252,8 +1252,12 @@ choose_good_exit_server_general(routerlist_t *dir, int need_uptime,
                  "to list of all routers.",
                  need_capacity?", fast":"",
                  need_uptime?", stable":"");
-        return choose_good_exit_server_general(dir, 0, 0);
+        return choose_good_exit_server_general(dir, 0, 0);//!!!!
       }
+      smartlist_free(preferredexits);
+      smartlist_free(excludedexits);
+      smartlist_free(sl);
+      tor_free(n_supported);
       log_notice(LD_CIRC, "All routers are down or won't exit -- choosing a "
                  "doomed exit at random.");
     }