]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
hs-v3: Remove BUG() that can occur normally
authorDavid Goulet <dgoulet@torproject.org>
Tue, 4 Feb 2020 15:13:10 +0000 (10:13 -0500)
committerteor <teor@torproject.org>
Wed, 12 Feb 2020 04:09:40 +0000 (14:09 +1000)
Fixes #28992

Signed-off-by: David Goulet <dgoulet@torproject.org>
changes/ticket28992 [new file with mode: 0644]
src/feature/hs/hs_client.c

diff --git a/changes/ticket28992 b/changes/ticket28992
new file mode 100644 (file)
index 0000000..3e45d73
--- /dev/null
@@ -0,0 +1,3 @@
+  o Minor bugfixes (onion service v3, client):
+    - Remove a BUG() that is causing a stacktrace for a situation that very
+      rarely happens but still can. Fixes bug 28992; bugfix on 0.3.2.1-alpha.
index fd2d266453821722dbeb6736ac1d6d7e3a1ed549..b045e1899b4a0337786665d4b3710b787ed8548e 100644 (file)
@@ -596,9 +596,14 @@ send_introduce1(origin_circuit_t *intro_circ,
   /* We need to find which intro point in the descriptor we are connected to
    * on intro_circ. */
   ip = find_desc_intro_point_by_ident(intro_circ->hs_ident, desc);
-  if (BUG(ip == NULL)) {
-    /* If we can find a descriptor from this introduction circuit ident, we
-     * must have a valid intro point object. Permanent error. */
+  if (ip == NULL) {
+    /* The following is possible if the descriptor was changed while we had
+     * this introduction circuit open and waiting for the rendezvous circuit to
+     * be ready. Which results in this situation where we can't find the
+     * corresponding intro point within the descriptor of the service. */
+    log_info(LD_REND, "Unable to find introduction point for service %s "
+                      "while trying to send an INTRODUCE1 cell.",
+             safe_str_client(onion_address));
     goto perm_err;
   }