From 26957a127a80404ca243e50c3f0c2bac01e480b8 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 31 Jan 2017 11:46:06 -0500 Subject: [PATCH] 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. --- src/or/entrynodes.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c index c5fb92e35a..344b69d65f 100644 --- a/src/or/entrynodes.c +++ b/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));