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

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);
}