aboutsummaryrefslogtreecommitdiff
path: root/src/or/dns.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/or/dns.c')
-rw-r--r--src/or/dns.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/or/dns.c b/src/or/dns.c
index 08a224536..81daae796 100644
--- a/src/or/dns.c
+++ b/src/or/dns.c
@@ -377,16 +377,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);
- /* XXX020 shouldn't we be freeing 'resolve' here? */
}
+ if (resolve->is_reverse)
+ tor_free(resolve->result.hostname);
+ resolve->magic = 0xF0BBF0BB;
+ tor_free(resolve);
}
assert_cache_ok();
@@ -708,9 +707,8 @@ dns_resolve_impl(edge_connection_t *exitconn, int is_resolve,
tor_fragile_assert();
}
tor_assert(0);
- } else if (resolve) {
- log_warn(LD_BUG, "Found Mike's bug. Memory leak here!");
}
+ tor_assert(!resolve);
/* not there, need to add it */
resolve = tor_malloc_zero(sizeof(cached_resolve_t));
resolve->magic = CACHED_RESOLVE_MAGIC;