diff options
author | Nick Mathewson <nickm@torproject.org> | 2014-03-13 10:07:10 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2014-03-13 10:07:10 -0400 |
commit | 119896cd43f420a053c552afe390f6d66224b3b7 (patch) | |
tree | f1a5b043e16a9abda94c1bec9811f4c384e7ef85 /src/test/test.c | |
parent | a522e9492b8c9bad4f33e8cf65d0dc141deda84a (diff) | |
download | tor-119896cd43f420a053c552afe390f6d66224b3b7.tar.gz tor-119896cd43f420a053c552afe390f6d66224b3b7.zip |
Fix some leaks/missed checks in the unit tests
Coverity spotted these.
Diffstat (limited to 'src/test/test.c')
-rw-r--r-- | src/test/test.c | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/test/test.c b/src/test/test.c index 456dde1412..0ba5da3672 100644 --- a/src/test/test.c +++ b/src/test/test.c @@ -671,6 +671,7 @@ test_policies(void) config_line_t line; smartlist_t *sm = NULL; char *policy_str = NULL; + short_policy_t *short_parsed = NULL; policy = smartlist_new(); @@ -858,24 +859,28 @@ test_policies(void) test_short_policy_parse("reject ,1-10,,,,30-40", "reject 1-10,30-40"); /* Try parsing various broken short policies */ - tt_ptr_op(NULL, ==, parse_short_policy("accept 200-199")); - tt_ptr_op(NULL, ==, parse_short_policy("")); - tt_ptr_op(NULL, ==, parse_short_policy("rejekt 1,2,3")); - tt_ptr_op(NULL, ==, parse_short_policy("reject ")); - tt_ptr_op(NULL, ==, parse_short_policy("reject")); - tt_ptr_op(NULL, ==, parse_short_policy("rej")); - tt_ptr_op(NULL, ==, parse_short_policy("accept 2,3,100000")); - tt_ptr_op(NULL, ==, parse_short_policy("accept 2,3x,4")); - tt_ptr_op(NULL, ==, parse_short_policy("accept 2,3x,4")); - tt_ptr_op(NULL, ==, parse_short_policy("accept 2-")); - tt_ptr_op(NULL, ==, parse_short_policy("accept 2-x")); - tt_ptr_op(NULL, ==, parse_short_policy("accept 1-,3")); - tt_ptr_op(NULL, ==, parse_short_policy("accept 1-,3")); +#define TT_BAD_SHORT_POLICY(s) \ + do { \ + tt_ptr_op(NULL, ==, (short_parsed = parse_short_policy((s)))); \ + } while (0) + TT_BAD_SHORT_POLICY("accept 200-199"); + TT_BAD_SHORT_POLICY(""); + TT_BAD_SHORT_POLICY("rejekt 1,2,3"); + TT_BAD_SHORT_POLICY("reject "); + TT_BAD_SHORT_POLICY("reject"); + TT_BAD_SHORT_POLICY("rej"); + TT_BAD_SHORT_POLICY("accept 2,3,100000"); + TT_BAD_SHORT_POLICY("accept 2,3x,4"); + TT_BAD_SHORT_POLICY("accept 2,3x,4"); + TT_BAD_SHORT_POLICY("accept 2-"); + TT_BAD_SHORT_POLICY("accept 2-x"); + TT_BAD_SHORT_POLICY("accept 1-,3"); + TT_BAD_SHORT_POLICY("accept 1-,3"); + /* Test a too-long policy. */ { 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) @@ -884,9 +889,9 @@ test_policies(void) policy = smartlist_join_strings(chunks, "", 0, NULL); SMARTLIST_FOREACH(chunks, char *, ch, tor_free(ch)); smartlist_free(chunks); - parsed = parse_short_policy(policy);/* shouldn't be accepted */ + short_parsed = parse_short_policy(policy);/* shouldn't be accepted */ tor_free(policy); - tt_ptr_op(NULL, ==, parsed); + tt_ptr_op(NULL, ==, short_parsed); } /* truncation ports */ @@ -927,6 +932,7 @@ test_policies(void) SMARTLIST_FOREACH(sm, char *, s, tor_free(s)); smartlist_free(sm); } + short_policy_free(short_parsed); } /** Test encoding and parsing of rendezvous service descriptors. */ |