Forráskód Böngészése

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.
Alexander Færøy 6 éve
szülő
commit
c997d49ad6
1 módosított fájl, 5 hozzáadás és 6 törlés
  1. 5 6
      src/test/test_hs_descriptor.c

+ 5 - 6
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);
 }