Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/maint-0.2.7'

Nick Mathewson 8 anni fa
parent
commit
d14b009b23
2 ha cambiato i file con 12 aggiunte e 5 eliminazioni
  1. 3 0
      changes/bug17402
  2. 9 5
      src/or/rendcache.c

+ 3 - 0
changes/bug17402

@@ -0,0 +1,3 @@
+  o Major bugfixes (memory leak):
+    - Fix a memory leak in rend_cache_failure_entry_free().
+      Fixes bug 17402; bugfix on 0.2.7.3-rc.

+ 9 - 5
src/or/rendcache.c

@@ -127,6 +127,12 @@ rend_cache_failure_intro_entry_free(rend_cache_failure_intro_t *entry)
   tor_free(entry);
 }
 
+static void
+rend_cache_failure_intro_entry_free_(void *entry)
+{
+  rend_cache_failure_intro_entry_free_(entry);
+}
+
 /** Allocate a rend cache failure intro object and return it. <b>failure</b>
  * is set into the object. This function can not fail. */
 STATIC rend_cache_failure_intro_t *
@@ -147,11 +153,9 @@ rend_cache_failure_entry_free(rend_cache_failure_t *entry)
   }
 
   /* Free and remove every intro failure object. */
-  DIGESTMAP_FOREACH_MODIFY(entry->intro_failures, key,
-                           rend_cache_failure_intro_t *, e) {
-    rend_cache_failure_intro_entry_free(e);
-    MAP_DEL_CURRENT(key);
-  } DIGESTMAP_FOREACH_END;
+  digestmap_free(entry->intro_failures,
+                 rend_cache_failure_intro_entry_free_);
+
   tor_free(entry);
 }