[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/maint-0.2.7] Fix an (unreachable) memory leak in rendcache.c
commit 03eb999d42a582bece2063fc06f34fad72e05be5
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date: Wed Oct 21 10:27:19 2015 -0400
Fix an (unreachable) memory leak in rendcache.c
The 0.2.8 unit tests provoke this leak, though I don't think it can
happen IRL.
---
src/or/rendcache.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/or/rendcache.c b/src/or/rendcache.c
index df4f517..4a12b08 100644
--- a/src/or/rendcache.c
+++ b/src/or/rendcache.c
@@ -353,7 +353,7 @@ cache_failure_intro_add(const uint8_t *identity, const char *service_id,
rend_intro_point_failure_t failure)
{
rend_cache_failure_t *fail_entry;
- rend_cache_failure_intro_t *entry;
+ rend_cache_failure_intro_t *entry, *old_entry;
/* Make sure we have a failure object for this service ID and if not,
* create it with this new intro failure entry. */
@@ -364,7 +364,10 @@ cache_failure_intro_add(const uint8_t *identity, const char *service_id,
strmap_set_lc(rend_cache_failure, service_id, fail_entry);
}
entry = rend_cache_failure_intro_entry_new(failure);
- digestmap_set(fail_entry->intro_failures, (char *) identity, entry);
+ old_entry = digestmap_set(fail_entry->intro_failures,
+ (char *) identity, entry);
+ /* This _should_ be NULL, but in case it isn't, free it. */
+ rend_cache_failure_intro_entry_free(old_entry);
}
/** Using a parsed descriptor <b>desc</b>, check if the introduction points
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits