aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2018-06-23 12:39:20 +0200
committerAlexander Færøy <ahf@torproject.org>2018-06-23 12:39:20 +0200
commitc997d49ad6e6a360323311444eed1dbee785aea4 (patch)
tree6a7f1c179f212b8760a5ee6c617dae2685ddfaaf
parent3d80c086bea3b0d93327c30ac620740b629cb294 (diff)
downloadtor-c997d49ad6e6a360323311444eed1dbee785aea4.tar.gz
tor-c997d49ad6e6a360323311444eed1dbee785aea4.zip
Fix memory link in test_link_specifier().
This patch fixes a memory leak in test_link_specifier() where ls might not get freed in case one of the test macros fails. See: Coverity CID 1437434.
-rw-r--r--src/test/test_hs_descriptor.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/test/test_hs_descriptor.c b/src/test/test_hs_descriptor.c
index 97fe1910b8..365683e75c 100644
--- a/src/test/test_hs_descriptor.c
+++ b/src/test/test_hs_descriptor.c
@@ -376,6 +376,9 @@ test_link_specifier(void *arg)
ssize_t ret;
hs_desc_link_specifier_t spec;
smartlist_t *link_specifiers = smartlist_new();
+ char buf[256];
+ char *b64 = NULL;
+ link_specifier_t *ls = NULL;
(void) arg;
@@ -385,9 +388,7 @@ test_link_specifier(void *arg)
/* Test IPv4 for starter. */
{
- char *b64, buf[256];
uint32_t ipv4;
- link_specifier_t *ls;
spec.type = LS_IPV4;
ret = tor_addr_parse(&spec.u.ap.addr, "1.2.3.4");
@@ -414,9 +415,7 @@ test_link_specifier(void *arg)
/* Test IPv6. */
{
- char *b64, buf[256];
uint8_t ipv6[16];
- link_specifier_t *ls;
spec.type = LS_IPV6;
ret = tor_addr_parse(&spec.u.ap.addr, "[1:2:3:4::]");
@@ -445,9 +444,7 @@ test_link_specifier(void *arg)
/* Test legacy. */
{
- char *b64, buf[256];
uint8_t *id;
- link_specifier_t *ls;
spec.type = LS_LEGACY_ID;
memset(spec.u.legacy_id, 'Y', sizeof(spec.u.legacy_id));
@@ -473,6 +470,8 @@ test_link_specifier(void *arg)
}
done:
+ link_specifier_free(ls);
+ tor_free(b64);
smartlist_free(link_specifiers);
}