Parcourir la source

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.
Roger Dingledine il y a 15 ans
Parent
commit
0a4e2397c0
2 fichiers modifiés avec 8 ajouts et 1 suppressions
  1. 5 0
      ChangeLog
  2. 3 1
      src/or/cpuworker.c

+ 5 - 0
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:

+ 3 - 1
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;
     }