aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-09-10 13:48:01 +0000
committerNick Mathewson <nickm@torproject.org>2007-09-10 13:48:01 +0000
commit615d19fe4c34a0c270e16268eff135fb9e976eb1 (patch)
treede13b386296319ef35e61c2224fb43abfb6b5467
parent6744ebe7b5efad0a8c46433042080199f1da8ec1 (diff)
downloadtor-615d19fe4c34a0c270e16268eff135fb9e976eb1.tar
tor-615d19fe4c34a0c270e16268eff135fb9e976eb1.tar.gz
r15001@catbus: nickm | 2007-09-10 09:44:49 -0400
Fix a couple of memory leaks in eventdns.c; found by niels. Not backport candidates, since they only affect DNSPort users. svn:r11413
-rw-r--r--ChangeLog2
-rw-r--r--src/or/eventdns.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4e7af1f58..ec07b237f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,6 +27,8 @@ Changes in version 0.2.0.7-alpha - 2007-??-??
"experimental", since it seems to have worked fine for ages.
- Fix a user-triggerable segfault in expand_filename(). (There isn't
a way to trigger this remotely.)
+ - Fix a memory leak when freeing incomplete requests from DNSPort.
+ (Found by Niels Provos with valgrind.)
o Code simplifications and refactoring:
- Revamp file-writing logic so we don't need to have the entire contents
diff --git a/src/or/eventdns.c b/src/or/eventdns.c
index 5074bcd54..5f2ae9d96 100644
--- a/src/or/eventdns.c
+++ b/src/or/eventdns.c
@@ -1745,7 +1745,7 @@ server_request_free_answers(struct server_request *req)
free(victim->name);
if (victim->data)
free(victim->data);
- /* XXXX free(victim?) -NM */
+ free(victim);
victim = next;
}
*list = NULL;
@@ -1761,6 +1761,7 @@ server_request_free(struct server_request *req)
if (req->base.questions) {
for (i = 0; i < req->base.nquestions; ++i)
free(req->base.questions[i]);
+ free(req->base.questions);
}
if (req->port) {