summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2009-07-27 22:38:09 -0400
committerRoger Dingledine <arma@torproject.org>2009-07-27 22:38:09 -0400
commit0a4e2397c0f184a1717ec7475381f9d12f189cb7 (patch)
treeb9aa6a44519fce987665a0561a995addd9d9ad17
parent2b63fa40e8349e0e6c40d0660d9df5b0ba73937e (diff)
downloadtor-0a4e2397c0f184a1717ec7475381f9d12f189cb7.tar.gz
tor-0a4e2397c0f184a1717ec7475381f9d12f189cb7.zip
Don't leak memory if we get too many create cells
Specifically, every time we get a create cell but we have so many already queued that we refuse it. Bugfix on 0.2.0.19-alpha; fixes bug 1034. Reported by BarkerJr.
-rw-r--r--ChangeLog5
-rw-r--r--src/or/cpuworker.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 59404929cf..fed57aaf4f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,11 @@ Changes in version 0.2.1.19 - 2009-07-??
- Make accessing hidden services on 0.2.1.x work right
again. Bugfix on 0.2.1.3-alpha; workaround for bug 1038.
+ o Minor bugfixes:
+ - Avoid leaking memory every time we get a create cell but we have
+ so many already queued that we refuse it. Bugfix on 0.2.0.19-alpha;
+ fixes bug 1034. Reported by BarkerJr.
+
Changes in version 0.2.1.18 - 2009-07-24
o Build fixes:
diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c
index 99829e89b5..219fb9d9be 100644
--- a/src/or/cpuworker.c
+++ b/src/or/cpuworker.c
@@ -444,8 +444,10 @@ assign_onionskin_to_cpuworker(connection_t *cpuworker,
if (1) {
if (num_cpuworkers_busy == num_cpuworkers) {
log_debug(LD_OR,"No idle cpuworkers. Queuing.");
- if (onion_pending_add(circ, onionskin) < 0)
+ if (onion_pending_add(circ, onionskin) < 0) {
+ tor_free(onionskin);
return -1;
+ }
return 0;
}