Browse Source

entry_guard_pick_for_circuit(): TRAFFIC guards must have descriptors

This relates to the 21242 fix -- entry_guard_pick_for_circuit()
should never yield nodes without descriptors when the node is going
to be used for traffic, since we won't be able to extend through
them.
Nick Mathewson 7 years ago
parent
commit
26957a127a
1 changed files with 2 additions and 0 deletions
  1. 2 0
      src/or/entrynodes.c

+ 2 - 0
src/or/entrynodes.c

@@ -2068,6 +2068,8 @@ entry_guard_pick_for_circuit(guard_selection_t *gs,
   // XXXX prop271 check Ed ID.
   if (! node)
     goto fail;
+  if (BUG(usage != GUARD_USAGE_DIRGUARD && !node_has_descriptor(node)))
+    goto fail;
 
   *chosen_node_out = node;
   *guard_state_out = tor_malloc_zero(sizeof(circuit_guard_state_t));