Просмотр исходного кода

Merge remote-tracking branch 'public/bug11278'

Nick Mathewson 10 лет назад
Родитель
Сommit
17d5734df4
2 измененных файлов с 15 добавлено и 0 удалено
  1. 3 0
      changes/bug11278
  2. 12 0
      src/or/circuitlist.c

+ 3 - 0
changes/bug11278

@@ -0,0 +1,3 @@
+  o Minor bugfixes:
+    - Free placeholder entries in our circuit table at exit; fixes
+      a harmless memory leak. Fixes bug 11278; bugfix on 0.2.5.1-alpha.

+ 12 - 0
src/or/circuitlist.c

@@ -833,6 +833,18 @@ circuit_free_all(void)
   smartlist_free(circuits_pending_chans);
   circuits_pending_chans = NULL;
 
+  {
+    chan_circid_circuit_map_t **elt, **next, *c;
+    for (elt = HT_START(chan_circid_map, &chan_circid_map);
+         elt;
+         elt = next) {
+      c = *elt;
+      next = HT_NEXT_RMV(chan_circid_map, &chan_circid_map, elt);
+
+      tor_assert(c->circuit == NULL);
+      tor_free(c);
+    }
+  }
   HT_CLEAR(chan_circid_map, &chan_circid_map);
 }