]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix memory leak in rend_cache_failure_entry_free()
authorNick Mathewson <nickm@torproject.org>
Wed, 21 Oct 2015 14:52:57 +0000 (10:52 -0400)
committerNick Mathewson <nickm@torproject.org>
Wed, 21 Oct 2015 14:52:57 +0000 (10:52 -0400)
Bug 17402.

changes/bug17402 [new file with mode: 0644]
src/or/rendcache.c

diff --git a/changes/bug17402 b/changes/bug17402
new file mode 100644 (file)
index 0000000..4760e00
--- /dev/null
@@ -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.
index 4a12b08c1c314fc8b52c26f38482f0398bad04ed..93f4440193d00ef4ca16e3ad268105c1baea16c0 100644 (file)
@@ -122,6 +122,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 *
@@ -142,11 +148,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);
 }