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

This commit is contained in:
George Kadianakis 2020-08-11 14:34:06 +03:00
parent 18d2c7c5d7
commit 9316ca9f06
2 changed files with 13 additions and 4 deletions

3
changes/bug34086 Normal file
View File

@ -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.

View File

@ -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;
}
}