From 0a4e2397c0f184a1717ec7475381f9d12f189cb7 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Mon, 27 Jul 2009 22:38:09 -0400 Subject: 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. --- src/or/cpuworker.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/or') 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; } -- cgit v1.2.3-54-g00ecf