diff options
author | Roger Dingledine <arma@torproject.org> | 2007-11-11 05:36:28 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2007-11-11 05:36:28 +0000 |
commit | 12e6d8c7f2ec8bc05f0b5270100383d54b16b46c (patch) | |
tree | 3578deb6df7456cb49a63d5ae68f267fbc2f8e2b | |
parent | 036c72bd2179f43b2b98dbf6a893efd662d5215e (diff) | |
download | tor-12e6d8c7f2ec8bc05f0b5270100383d54b16b46c.tar.gz tor-12e6d8c7f2ec8bc05f0b5270100383d54b16b46c.zip |
backport the fixes for bug 549.
svn:r12473
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | src/or/dns.c | 8 |
2 files changed, 6 insertions, 4 deletions
@@ -2,6 +2,8 @@ Changes in version 0.1.2.19 - 2007-??-?? o Major bugfixes: - When the clock jumps forward a lot, do not allow the bandwidth buckets to become negative. Fixes Bug 544. + - Fix a memory leak on exit relays; we were leaking a cached_resolve_t + on every successful resolve. Reported by Mike Perry. Changes in version 0.1.2.18 - 2007-10-28 diff --git a/src/or/dns.c b/src/or/dns.c index 0bcd021e93..977943ebe4 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -409,15 +409,15 @@ purge_expired_resolves(time_t now) removed ? removed->address : "NULL", (void*)remove); } tor_assert(removed == resolve); - if (resolve->is_reverse) - tor_free(resolve->result.hostname); - resolve->magic = 0xF0BBF0BB; - tor_free(resolve); } else { /* This should be in state DONE. Make sure it's not in the cache. */ cached_resolve_t *tmp = HT_FIND(cache_map, &cache_root, resolve); tor_assert(tmp != resolve); } + if (resolve->is_reverse) + tor_free(resolve->result.hostname); + resolve->magic = 0xF0BBF0BB; + tor_free(resolve); } assert_cache_ok(); |