[tor-commits] [tor/master] Fix leaks in test_oom.c

nickm at torproject.org nickm at torproject.org
Thu May 1 16:31:44 UTC 2014


commit 504e2000ed631425780d4b0e509deb6b59ff2561
Author: Nick Mathewson <nickm at torproject.org>
Date:   Sat Apr 26 12:17:10 2014 -0400

    Fix leaks in test_oom.c
---
 src/test/test_oom.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/test/test_oom.c b/src/test/test_oom.c
index 989ca12..e205673 100644
--- a/src/test/test_oom.c
+++ b/src/test/test_oom.c
@@ -6,6 +6,7 @@
 #define RELAY_PRIVATE
 #define BUFFERS_PRIVATE
 #define CIRCUITLIST_PRIVATE
+#define CONNECTION_PRIVATE
 #include "or.h"
 #include "buffers.h"
 #include "circuitlist.h"
@@ -216,6 +217,7 @@ test_oom_streambuf(void *arg)
   struct timeval tv = { 1389641159, 0 };
   uint32_t tvms;
   int i;
+  smartlist_t *edgeconns = smartlist_new();
 
   (void) arg;
 
@@ -257,17 +259,21 @@ test_oom_streambuf(void *arg)
     tor_gettimeofday_cache_set(&tv);
     ec = dummy_edge_conn_new(c1, CONN_TYPE_EXIT, 1000, 1000);
     tt_assert(ec);
+    smartlist_add(edgeconns, ec);
     tv.tv_usec += 10*1000;
     tor_gettimeofday_cache_set(&tv);
     ec = dummy_edge_conn_new(c2, CONN_TYPE_AP, 1000, 1000);
     tt_assert(ec);
+    smartlist_add(edgeconns, ec);
     tv.tv_usec += 10*1000;
     tor_gettimeofday_cache_set(&tv);
     ec = dummy_edge_conn_new(c4, CONN_TYPE_EXIT, 1000, 1000); /* Yes, 4 twice*/
     tt_assert(ec);
+    smartlist_add(edgeconns, ec);
     tv.tv_usec += 10*1000;
     tor_gettimeofday_cache_set(&tv);
     ec = dummy_edge_conn_new(c4, CONN_TYPE_EXIT, 1000, 1000);
+    smartlist_add(edgeconns, ec);
     tt_assert(ec);
   }
 
@@ -302,6 +308,7 @@ test_oom_streambuf(void *arg)
     tor_gettimeofday_cache_set(&tv);
     ec = dummy_edge_conn_new(c4, CONN_TYPE_EXIT, 1000, 1000);
     tt_assert(ec);
+    smartlist_add(edgeconns, ec);
   }
   tt_int_op(buf_get_total_allocation(), ==, 4096*17*2);
   tt_int_op(circuit_max_queued_item_age(c4, tvms), ==, 1000);
@@ -337,6 +344,10 @@ test_oom_streambuf(void *arg)
   circuit_free(c4);
   circuit_free(c5);
 
+  SMARTLIST_FOREACH(edgeconns, edge_connection_t *, ec,
+                    connection_free_(TO_CONN(ec)));
+  smartlist_free(edgeconns);
+
   UNMOCK(circuit_mark_for_close_);
 }
 





More information about the tor-commits mailing list