[tor-commits] [tor/master] test: Fix memory leak in test_circuituse.c

nickm at torproject.org nickm at torproject.org
Mon Dec 12 02:19:10 UTC 2016


commit d01a6c07ae3d9e6ce10b5723b7aa1ba301d810db
Author: David Goulet <dgoulet at torproject.org>
Date:   Fri Dec 9 10:20:14 2016 -0500

    test: Fix memory leak in test_circuituse.c
    
    Circuit object wasn't freed correctly. Also, the cpath build state object
    needed to be zeroed else we were freeing garbage pointers.
    
    Closes #20936
    
    Signed-off-by: David Goulet <dgoulet at torproject.org>
---
 src/test/test_circuituse.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/test/test_circuituse.c b/src/test/test_circuituse.c
index edbc9f6..27a8766 100644
--- a/src/test/test_circuituse.c
+++ b/src/test/test_circuituse.c
@@ -3,6 +3,8 @@
  * Copyright (c) 2007-2016, The Tor Project, Inc. */
 /* See LICENSE for licensing information */
 
+#define CIRCUITLIST_PRIVATE
+
 #include "or.h"
 #include "test.h"
 #include "test_helpers.h"
@@ -93,7 +95,7 @@ test_circuit_is_available_for_use_ret_false_unusable_for_new_conns(void *arg)
   tt_int_op(0, ==, circuit_is_available_for_use(circ));
 
   done:
-    tor_free(circ);
+    circuit_free(circ);
 }
 
 static void
@@ -103,13 +105,13 @@ test_circuit_is_available_for_use_returns_false_for_onehop_tunnel(void *arg)
 
   circuit_t *circ = dummy_origin_circuit_new(30);
   origin_circuit_t *oc = TO_ORIGIN_CIRCUIT(circ);
-  oc->build_state = tor_malloc(sizeof(cpath_build_state_t));
+  oc->build_state = tor_malloc_zero(sizeof(cpath_build_state_t));
   oc->build_state->onehop_tunnel = 1;
 
   tt_int_op(0, ==, circuit_is_available_for_use(circ));
 
   done:
-    tor_free(circ);
+    circuit_free(circ);
 }
 
 static void
@@ -119,13 +121,13 @@ test_circuit_is_available_for_use_returns_true_for_clean_circuit(void *arg)
 
   circuit_t *circ = dummy_origin_circuit_new(30);
   origin_circuit_t *oc = TO_ORIGIN_CIRCUIT(circ);
-  oc->build_state = tor_malloc(sizeof(cpath_build_state_t));
+  oc->build_state = tor_malloc_zero(sizeof(cpath_build_state_t));
   oc->build_state->onehop_tunnel = 0;
 
   tt_int_op(1, ==, circuit_is_available_for_use(circ));
 
   done:
-    tor_free(circ);
+    circuit_free(circ);
 }
 
 static int





More information about the tor-commits mailing list