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.
This commit is contained in:
Alexander Færøy
2018-06-23 12:39:20 +02:00
parent 3d80c086be
commit c997d49ad6
+5 -6
View File
@@ -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);
}