[tor-commits] [tor/master] Remove a BUG() that could normally trigger in edge-cases.

nickm at torproject.org nickm at torproject.org
Tue Aug 11 16:39:37 UTC 2020


commit 9316ca9f0606666b2188d5b11c969e01a587332c
Author: George Kadianakis <desnacked at riseup.net>
Date:   Tue Aug 11 14:34:06 2020 +0300

    Remove a BUG() that could normally trigger in edge-cases.
---
 changes/bug34086           |  3 +++
 src/feature/hs/hs_client.c | 14 ++++++++++----
 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;
     }
   }
 





More information about the tor-commits mailing list