diff options
author | Alexander Færøy <ahf@torproject.org> | 2018-06-23 13:05:41 +0200 |
---|---|---|
committer | Alexander Færøy <ahf@torproject.org> | 2018-06-23 13:07:56 +0200 |
commit | a2e623f631a63f041f76b79e554b01bbf62748b8 (patch) | |
tree | 0bbecc865a7ad65f7b6225665187f5d1923cc6cd /src | |
parent | 8e805bf0f65ffd137a6c9ed89be060e5d9ba317d (diff) | |
download | tor-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.
Diffstat (limited to 'src')
-rw-r--r-- | src/test/test_hs_common.c | 7 |
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); } |