tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 9316ca9f0606666b2188d5b11c969e01a587332c
parent 18d2c7c5d7eb0441d891fb7642fbbabde6c53cf2
Author: George Kadianakis <desnacked@riseup.net>
Date:   Tue, 11 Aug 2020 14:34:06 +0300

Remove a BUG() that could normally trigger in edge-cases.

Diffstat:
Achanges/bug34086 | 3+++
Msrc/feature/hs/hs_client.c | 14++++++++++----
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/changes/bug34086 b/changes/bug34086 @@ -0,0 +1,3 @@ + o Minor bugfixes (onion service v3): + - Remove a BUG() warning that could trigger in certain unlikely edge-cases. + Fixes bug 34086; bugfix on 0.3.2.1-alpha. diff --git a/src/feature/hs/hs_client.c b/src/feature/hs/hs_client.c @@ -778,10 +778,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; } }