diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/test_hs_common.c | 7 | ||||
-rw-r--r-- | src/test/test_hs_intropoint.c | 7 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/test/test_hs_common.c b/src/test/test_hs_common.c index 6296a709dc..934b26450d 100644 --- a/src/test/test_hs_common.c +++ b/src/test/test_hs_common.c @@ -292,6 +292,7 @@ helper_add_hsdir_to_networkstatus(networkstatus_t *ns, routerinfo_t *ri = tor_malloc_zero(sizeof(routerinfo_t)); uint8_t identity[DIGEST_LEN]; tor_addr_t ipv4_addr; + node_t *node = NULL; memset(identity, identity_idx, sizeof(identity)); @@ -310,7 +311,8 @@ helper_add_hsdir_to_networkstatus(networkstatus_t *ns, memset(&ri->cache_info.signing_key_cert->signing_key, identity_idx, ED25519_PUBKEY_LEN); tt_assert(nodelist_set_routerinfo(ri, NULL)); - node_t *node = node_get_mutable_by_id(ri->cache_info.identity_digest); + + node = node_get_mutable_by_id(ri->cache_info.identity_digest); tt_assert(node); node->rs = rs; /* We need this to exist for node_has_preferred_descriptor() to return @@ -323,6 +325,9 @@ helper_add_hsdir_to_networkstatus(networkstatus_t *ns, smartlist_add(ns->routerstatus_list, rs); done: + if (node == NULL) + routerstatus_free(rs); + routerinfo_free(ri); } diff --git a/src/test/test_hs_intropoint.c b/src/test/test_hs_intropoint.c index 843f39423b..2445a8fcf1 100644 --- a/src/test/test_hs_intropoint.c +++ b/src/test/test_hs_intropoint.c @@ -44,6 +44,10 @@ new_establish_intro_cell(const char *circ_nonce, trn_cell_establish_intro_t *cell = NULL; hs_service_intro_point_t *ip = NULL; + /* Ensure that *cell_out is NULL such that we can use to check if we need to + * free `cell` in case of an error. */ + *cell_out = NULL; + /* Auth key pair is generated in the constructor so we are all set for * using this IP object. */ ip = service_intro_point_new(NULL, 0); @@ -57,6 +61,9 @@ new_establish_intro_cell(const char *circ_nonce, *cell_out = cell; done: + if (*cell_out == NULL) + trn_cell_establish_intro_free(cell); + service_intro_point_free(ip); return cell_len; } |