summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-02-11 18:10:33 -0500
committerNick Mathewson <nickm@torproject.org>2014-02-11 18:10:33 -0500
commitc3720c05fa44b3790ab0dc37e2506ee482796e21 (patch)
tree53e3146e10dbb647d13c3c64fcbe6549ff372ef0
parent10d4d3e2d58f94418ca9554aee251232bbaaab99 (diff)
downloadtor-c3720c05fa44b3790ab0dc37e2506ee482796e21.tar.gz
tor-c3720c05fa44b3790ab0dc37e2506ee482796e21.zip
Free leakable values in the unit tests.
Thanks, Coverity! (CID 1171414, 1171415, 1171416)
-rw-r--r--src/test/test.c6
-rw-r--r--src/test/test_config.c11
-rw-r--r--src/test/test_dir.c4
3 files changed, 16 insertions, 5 deletions
diff --git a/src/test/test.c b/src/test/test.c
index 522f2af645..45f7c097d9 100644
--- a/src/test/test.c
+++ b/src/test/test.c
@@ -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 */
diff --git a/src/test/test_config.c b/src/test/test_config.c
index 3a1b6d7d88..a1dff644a0 100644
--- a/src/test/test_config.c
+++ b/src/test/test_config.c
@@ -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
diff --git a/src/test/test_dir.c b/src/test/test_dir.c
index 7c625ce7dd..dcfe98dd11 100644
--- a/src/test/test_dir.c
+++ b/src/test/test_dir.c
@@ -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);