summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-08-11 12:40:02 -0400
committerNick Mathewson <nickm@torproject.org>2020-08-11 12:40:02 -0400
commitd76f8457f305fd7445dc09131b418b1bfbd99988 (patch)
tree84ea173be551b21fccf84ed9f6fb437ab21ded36
parent2b968446d9c0634a6fb3305a10879b4f29684877 (diff)
parent9316ca9f0606666b2188d5b11c969e01a587332c (diff)
downloadtor-d76f8457f305fd7445dc09131b418b1bfbd99988.tar.gz
tor-d76f8457f305fd7445dc09131b418b1bfbd99988.zip
Merge remote-tracking branch 'tor-gitlab/mr/119' into maint-0.4.4
-rw-r--r--changes/bug340863
-rw-r--r--src/feature/hs/hs_client.c14
2 files changed, 13 insertions, 4 deletions
diff --git a/changes/bug34086 b/changes/bug34086
new file mode 100644
index 0000000000..245992f8f4
--- /dev/null
+++ 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
index 892f69a3a0..d9c5d8ca1d 100644
--- 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;
}
}