[tor-commits] [tor/master] Fix memory link in test_link_specifier().

nickm at torproject.org nickm at torproject.org
Fri Jun 29 17:06:29 UTC 2018


commit c997d49ad6e6a360323311444eed1dbee785aea4
Author: Alexander Færøy <ahf at torproject.org>
Date:   Sat Jun 23 12:39:20 2018 +0200

    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.
---
 src/test/test_hs_descriptor.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/test/test_hs_descriptor.c b/src/test/test_hs_descriptor.c
index 97fe1910b..365683e75 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);
 }
 





More information about the tor-commits mailing list