tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 4715d818092e02f2c530b172b351d9a2d11df735
parent 2d2a0c4116cdefe1c001a047d09b38bdacc79b3c
Author: Nick Mathewson <nickm@torproject.org>
Date:   Wed, 10 Jan 2018 09:38:38 -0500

Merge remote-tracking branch 'teor/Bug-23966'

Diffstat:
Achanges/ticket23966 | 5+++++
Msrc/or/nodelist.c | 16+++++-----------
2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/changes/ticket23966 b/changes/ticket23966 @@ -0,0 +1,5 @@ + o Code simplification and refactoring: + - Remove duplicate code in node_has_curve25519_onion_key() and + node_get_curve25519_onion_key(), and add a check for a zero microdesc + curve25519 onion key. Closes ticket 23966, patch by "aruna1234" and + "teor". diff --git a/src/or/nodelist.c b/src/or/nodelist.c @@ -1637,24 +1637,18 @@ microdesc_has_curve25519_onion_key(const microdesc_t *md) int node_has_curve25519_onion_key(const node_t *node) { - if (!node) - return 0; - - if (node->ri) - return routerinfo_has_curve25519_onion_key(node->ri); - else if (node->md) - return microdesc_has_curve25519_onion_key(node->md); - else - return 0; + return(node_get_curve25519_onion_key(node)!=NULL); } /** Return the curve25519 key of <b>node</b>, or NULL if none. */ const curve25519_public_key_t * node_get_curve25519_onion_key(const node_t *node) { - if (node->ri) + if (!node) + return NULL; + if (routerinfo_has_curve25519_onion_key(node->ri)) return node->ri->onion_curve25519_pkey; - else if (node->md) + else if (microdesc_has_curve25519_onion_key(node->md)) return node->md->onion_curve25519_pkey; else return NULL;