]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Free leakable values in the unit tests.
authorNick Mathewson <nickm@torproject.org>
Tue, 11 Feb 2014 23:10:33 +0000 (18:10 -0500)
committerNick Mathewson <nickm@torproject.org>
Tue, 11 Feb 2014 23:10:33 +0000 (18:10 -0500)
Thanks, Coverity!  (CID 117141411714151171416)

src/test/test.c
src/test/test_config.c
src/test/test_dir.c

index 522f2af6451e387e9e9cbb74fe969f17eb66134d..45f7c097d90203067718a71dbbbbe3fdb659c693 100644 (file)
@@ -875,6 +875,7 @@ test_policies(void)
   {
     int i;
     char *policy = NULL;
+    short_policy_t *parsed;
     smartlist_t *chunks = smartlist_new();
     smartlist_add(chunks, tor_strdup("accept "));
     for (i=1; i<10000; ++i)
@@ -883,8 +884,9 @@ test_policies(void)
     policy = smartlist_join_strings(chunks, "", 0, NULL);
     SMARTLIST_FOREACH(chunks, char *, ch, tor_free(ch));
     smartlist_free(chunks);
-    tt_ptr_op(NULL, ==, parse_short_policy(policy));/* shouldn't be accepted */
-    tor_free(policy); /* could leak. */
+    parsed = parse_short_policy(policy);/* shouldn't be accepted */
+    tor_free(policy);
+    tt_ptr_op(NULL, ==, parsed);
   }
 
   /* truncation ports */
index 3a1b6d7d88225e6a6585164688bca1ef6d73c196..a1dff644a0dcf5453d849dc92058f7f4e98307ad 100644 (file)
@@ -247,6 +247,7 @@ test_config_write_to_data_subdir(void *arg)
 {
   or_options_t* options = get_options_mutable();
   char *datadir = options->DataDirectory = tor_strdup(get_fname("datadir-1"));
+  char *cp = NULL;
   const char* subdir = "test_stats";
   const char* fname = "test_file";
   const char* str =
@@ -280,17 +281,23 @@ test_config_write_to_data_subdir(void *arg)
   // Content of file after write attempt should be
   // equal to the original string.
   test_assert(!write_to_data_subdir(subdir, fname, str, NULL));
-  test_streq(read_file_to_str(filepath, 0, NULL), str);
+  cp = read_file_to_str(filepath, 0, NULL);
+  test_streq(cp, str);
+  tor_free(cp);
 
   // A second write operation should overwrite the old content.
   test_assert(!write_to_data_subdir(subdir, fname, str, NULL));
-  test_streq(read_file_to_str(filepath, 0, NULL), str);
+  cp = read_file_to_str(filepath, 0, NULL);
+  test_streq(cp, str);
+  tor_free(cp);
+
 
  done:
   (void) unlink(filepath);
   rmdir(options->DataDirectory);
   tor_free(datadir);
   tor_free(filepath);
+  tor_free(cp);
 }
 
 /* Test helper function: Make sure that a bridge line gets parsed
index 7c625ce7dddcd1e03178e9260e7da17a48d9ad3c..dcfe98dd1186a2a6573ec48c85b55da06a9aec08 100644 (file)
@@ -1230,7 +1230,8 @@ test_a_networkstatus(
   vote_routerstatus_t *vrs;
   routerstatus_t *rs;
   int idx, n_rs, n_vrs;
-  char *v1_text=NULL, *v2_text=NULL, *v3_text=NULL, *consensus_text=NULL, *cp;
+  char *v1_text=NULL, *v2_text=NULL, *v3_text=NULL, *consensus_text=NULL,
+    *cp=NULL;
   smartlist_t *votes = smartlist_new();
 
   /* For generating the two other consensuses. */
@@ -1648,6 +1649,7 @@ test_a_networkstatus(
   }
 
  done:
+  tor_free(cp);
   smartlist_free(votes);
   tor_free(v1_text);
   tor_free(v2_text);