summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-06-29 13:07:07 -0400
committerNick Mathewson <nickm@torproject.org>2018-06-29 13:07:07 -0400
commit6e9d5fc4ec40136d173be680a85a9bfb9b99fea4 (patch)
treee113c7ad625610479b76de4175883ba53a00261f /src/test
parent68dfbd5ef433b830059baa08d48589518db05d22 (diff)
parenta2e623f631a63f041f76b79e554b01bbf62748b8 (diff)
downloadtor-6e9d5fc4ec40136d173be680a85a9bfb9b99fea4.tar.gz
tor-6e9d5fc4ec40136d173be680a85a9bfb9b99fea4.zip
Merge remote-tracking branch 'ahf-github/maint-0.3.2' into maint-0.3.2
Diffstat (limited to 'src/test')
-rw-r--r--src/test/test_hs_common.c7
-rw-r--r--src/test/test_hs_intropoint.c7
2 files changed, 13 insertions, 1 deletions
diff --git a/src/test/test_hs_common.c b/src/test/test_hs_common.c
index 21daa58abd..3ae623ed0a 100644
--- a/src/test/test_hs_common.c
+++ b/src/test/test_hs_common.c
@@ -284,6 +284,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));
@@ -302,7 +303,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_descriptor() to return true. */
@@ -314,6 +316,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 0cae2de7e1..b2d2700f8b 100644
--- a/src/test/test_hs_intropoint.c
+++ b/src/test/test_hs_intropoint.c
@@ -43,6 +43,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);
@@ -56,6 +60,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;
}