summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2018-06-23 13:05:41 +0200
committerAlexander Færøy <ahf@torproject.org>2018-06-23 13:07:56 +0200
commita2e623f631a63f041f76b79e554b01bbf62748b8 (patch)
tree0bbecc865a7ad65f7b6225665187f5d1923cc6cd
parent8e805bf0f65ffd137a6c9ed89be060e5d9ba317d (diff)
downloadtor-a2e623f631a63f041f76b79e554b01bbf62748b8.tar.gz
tor-a2e623f631a63f041f76b79e554b01bbf62748b8.zip
Fix memory leak in helper_add_hsdir_to_networkstatus().
This patch fixes a memory leak in helper_add_hsdir_to_networkstatus() where the rs object might not get properly freed. See: Coverity CID 1437427.
-rw-r--r--src/test/test_hs_common.c7
1 files changed, 6 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);
}