Commit c997d49a authored by Alexander Hansen Færøy's avatar Alexander Hansen Færøy 💬
Browse files

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.
parent 3d80c086
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -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);
}