commit d0759da14eeaefb186d8d514f971b0b1a0618a0f Author: teor teor2345@gmail.com Date: Sun Feb 8 23:41:37 2015 +1100
Avoid calling SMARTLIST_FOREACH on a NULL smartlist in tests
Check if each smartlist is NULL before calling SMARTLIST_FOREACH on it.
Bug discovered by the clang static analyzer. Apple clang 600.0.56 (LLVM 3.5svn) on x86_64-apple-darwin14.1.0. --- src/test/test_address.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/test/test_address.c b/src/test/test_address.c index f98cc12..7f7347f 100644 --- a/src/test/test_address.c +++ b/src/test/test_address.c @@ -207,9 +207,10 @@ test_address_ifaddrs_to_smartlist(void *arg) tor_free(ifa_ipv4); tor_free(ifa_ipv6); tor_free(sockaddr_to_check); - SMARTLIST_FOREACH(smartlist, tor_addr_t *, t, tor_free(t)); - smartlist_free(smartlist); - + if (smartlist) { + SMARTLIST_FOREACH(smartlist, tor_addr_t *, t, tor_free(t)); + smartlist_free(smartlist); + } return; }
@@ -442,8 +443,10 @@ test_address_get_if_addrs_ioctl(void *arg) tt_assert(smartlist_contains_localhost_tor_addr(result));
done: - SMARTLIST_FOREACH(result, tor_addr_t *, t, tor_free(t)); - smartlist_free(result); + if (result) { + SMARTLIST_FOREACH(result, tor_addr_t *, t, tor_free(t)); + smartlist_free(result); + } return; }