diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-08-11 12:39:30 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-08-11 12:39:30 -0400 |
commit | 11961f0bc553a5909f2465a06fe5e7ca27fa6da9 (patch) | |
tree | 5fff4efbef09e0d778409da0a02cc0aaefa52dc0 /src/feature/hs | |
parent | da9684d89a7b0de39c142c4273646cd972b45437 (diff) | |
parent | 9316ca9f0606666b2188d5b11c969e01a587332c (diff) | |
download | tor-11961f0bc553a5909f2465a06fe5e7ca27fa6da9.tar.gz tor-11961f0bc553a5909f2465a06fe5e7ca27fa6da9.zip |
Merge remote-tracking branch 'tor-gitlab/mr/119'
Diffstat (limited to 'src/feature/hs')
-rw-r--r-- | src/feature/hs/hs_client.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/feature/hs/hs_client.c b/src/feature/hs/hs_client.c index 23768213f3..cde3560ebf 100644 --- a/src/feature/hs/hs_client.c +++ b/src/feature/hs/hs_client.c @@ -779,10 +779,16 @@ client_rendezvous_circ_has_opened(origin_circuit_t *circ) * the v3 rendezvous protocol */ if (rp_ei) { const node_t *rp_node = node_get_by_id(rp_ei->identity_digest); - if (rp_node) { - if (BUG(!node_supports_v3_rendezvous_point(rp_node))) { - return; - } + if (rp_node && !node_supports_v3_rendezvous_point(rp_node)) { + /* Even tho we checked that this node supported v3 when we created the + rendezvous circuit, there is a chance that we might think it does + not support v3 anymore. This might happen if we got a new consensus + in the meanwhile, where the relay is still listed but its listed + descriptor digest has changed and hence we can't access its 'ri' or + 'md'. */ + log_info(LD_REND, "Rendezvous node %s did not support v3 after circuit " + "has opened.", safe_str_client(extend_info_describe(rp_ei))); + return; } } |