[tor-commits] [tor/master] Fix a bunch of coverity-spotted unit test resource leaks

nickm at torproject.org nickm at torproject.org
Fri Nov 22 17:21:45 UTC 2013


commit 7c76fd5a8289ffa38507a67c6323f6e7d9ef732b
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Nov 22 12:21:14 2013 -0500

    Fix a bunch of coverity-spotted unit test resource leaks
    
    CIDs: 1130994, 1130993, 1130992, 1130991
---
 src/test/test_controller_events.c |   21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/test/test_controller_events.c b/src/test/test_controller_events.c
index 04a04de..3a9aeca 100644
--- a/src/test/test_controller_events.c
+++ b/src/test/test_controller_events.c
@@ -105,9 +105,10 @@ test_cntev_sum_up_cell_stats(void *arg)
 {
   or_circuit_t *or_circ;
   circuit_t *circ;
-  cell_stats_t *cell_stats;
+  cell_stats_t *cell_stats = NULL;
   (void)arg;
 
+  /* This circuit is fake. */
   or_circ = tor_malloc_zero(sizeof(or_circuit_t));
   or_circ->base_.magic = OR_CIRCUIT_MAGIC;
   or_circ->base_.purpose = CIRCUIT_PURPOSE_OR;
@@ -139,7 +140,8 @@ test_cntev_sum_up_cell_stats(void *arg)
   tt_int_op(1, ==, cell_stats->removed_cells_exitward[CELL_RELAY]);
 
  done:
-  ;
+  tor_free(cell_stats);
+  tor_free(or_circ);
 }
 
 static void
@@ -193,10 +195,10 @@ test_cntev_append_cell_stats(void *arg)
 static void
 test_cntev_format_cell_stats(void *arg)
 {
-  char *event_string;
+  char *event_string = NULL;
   origin_circuit_t *ocirc;
   or_circuit_t *or_circ;
-  cell_stats_t *cell_stats;
+  cell_stats_t *cell_stats = NULL;
   channel_tls_t *n_chan, *p_chan;
   (void)arg;
 
@@ -214,12 +216,14 @@ test_cntev_format_cell_stats(void *arg)
   cell_stats = tor_malloc_zero(sizeof(cell_stats_t));
   format_cell_stats(&event_string, TO_CIRCUIT(ocirc), cell_stats);
   tt_str_op("ID=2 OutboundQueue=3 OutboundConn=1", ==, event_string);
+  tor_free(event_string);
 
   /* Origin circuit had 4 RELAY cells added to its exitward queue. */
   cell_stats->added_cells_exitward[CELL_RELAY] = 4;
   format_cell_stats(&event_string, TO_CIRCUIT(ocirc), cell_stats);
   tt_str_op("ID=2 OutboundQueue=3 OutboundConn=1 OutboundAdded=relay:4",
             ==, event_string);
+  tor_free(event_string);
 
   /* Origin circuit also had 5 CREATE2 cells added to its exitward
    * queue. */
@@ -227,6 +231,7 @@ test_cntev_format_cell_stats(void *arg)
   format_cell_stats(&event_string, TO_CIRCUIT(ocirc), cell_stats);
   tt_str_op("ID=2 OutboundQueue=3 OutboundConn=1 OutboundAdded=relay:4,"
             "create2:5", ==, event_string);
+  tor_free(event_string);
 
   /* Origin circuit also had 7 RELAY cells removed from its exitward queue
    * which together spent 6 msec in the queue. */
@@ -236,6 +241,7 @@ test_cntev_format_cell_stats(void *arg)
   tt_str_op("ID=2 OutboundQueue=3 OutboundConn=1 OutboundAdded=relay:4,"
             "create2:5 OutboundRemoved=relay:7 OutboundTime=relay:6",
             ==, event_string);
+  tor_free(event_string);
 
   p_chan = tor_malloc_zero(sizeof(channel_tls_t));
   p_chan->base_.global_identifier = 2;
@@ -248,17 +254,21 @@ test_cntev_format_cell_stats(void *arg)
   or_circ->base_.n_circ_id = 9;
   or_circ->base_.n_chan = &(n_chan->base_);
 
+  tor_free(cell_stats);
+
   /* OR circuit was idle. */
   cell_stats = tor_malloc_zero(sizeof(cell_stats_t));
   format_cell_stats(&event_string, TO_CIRCUIT(or_circ), cell_stats);
   tt_str_op("InboundQueue=8 InboundConn=2 OutboundQueue=9 OutboundConn=1",
             ==, event_string);
+  tor_free(event_string);
 
   /* OR circuit had 3 RELAY cells added to its appward queue. */
   cell_stats->added_cells_appward[CELL_RELAY] = 3;
   format_cell_stats(&event_string, TO_CIRCUIT(or_circ), cell_stats);
   tt_str_op("InboundQueue=8 InboundConn=2 InboundAdded=relay:3 "
             "OutboundQueue=9 OutboundConn=1", ==, event_string);
+  tor_free(event_string);
 
   /* OR circuit had 7 RELAY cells removed from its appward queue which
    * together spent 6 msec in the queue. */
@@ -270,7 +280,8 @@ test_cntev_format_cell_stats(void *arg)
             "OutboundQueue=9 OutboundConn=1", ==, event_string);
 
  done:
-  ;
+  tor_free(cell_stats);
+  tor_free(event_string);
 }
 
 #define TEST(name, flags)                                               \



More information about the tor-commits mailing list