Browse Source

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

Nick Mathewson 6 years ago
parent
commit
4715d81809
2 changed files with 10 additions and 11 deletions
  1. 5 0
      changes/ticket23966
  2. 5 11
      src/or/nodelist.c

+ 5 - 0
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".

+ 5 - 11
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;