diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-01-10 09:38:38 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-01-10 09:38:38 -0500 |
commit | 4715d818092e02f2c530b172b351d9a2d11df735 (patch) | |
tree | bcffd533089ecfb8ae1fd59a705a72a663660e71 | |
parent | 2d2a0c4116cdefe1c001a047d09b38bdacc79b3c (diff) | |
parent | e7029621db85d5f2f26414531e1b9312677cc00f (diff) | |
download | tor-4715d818092e02f2c530b172b351d9a2d11df735.tar.gz tor-4715d818092e02f2c530b172b351d9a2d11df735.zip |
Merge remote-tracking branch 'teor/Bug-23966'
-rw-r--r-- | changes/ticket23966 | 5 | ||||
-rw-r--r-- | src/or/nodelist.c | 16 |
2 files changed, 10 insertions, 11 deletions
diff --git a/changes/ticket23966 b/changes/ticket23966 new file mode 100644 index 0000000000..72889c4cb6 --- /dev/null +++ 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 index 4eafe6d7a7..95fef43020 100644 --- 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; |