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:
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;