浏览代码

When extending a circuit's path length, clear onehop_tunnel.

There was a nonfatal assertion in pathbias_should_count that would
trigger if onehop_tunnel was set, but the desired_path_length was
greater than 1.  This patch fixes that.  Fixes bug 24903; bugfix on
0.2.5.2-alpha.
Nick Mathewson 6 年之前
父节点
当前提交
33a80921a2
共有 2 个文件被更改,包括 8 次插入0 次删除
  1. 5 0
      changes/bug24903
  2. 3 0
      src/or/control.c

+ 5 - 0
changes/bug24903

@@ -0,0 +1,5 @@
+  o Minor bugfixes (controller, reliability):
+    - Avoid a (nonfatal) assertion failure when extending a one-hop circuit
+      from the controller to become a multihop circuit. Fixes bug 24903;
+      bugfix on 0.2.5.2-alpha.
+

+ 3 - 0
src/or/control.c

@@ -3364,6 +3364,9 @@ handle_control_extendcircuit(control_connection_t *conn, uint32_t len,
       tor_assert(info);
     }
     circuit_append_new_exit(circ, info);
+    if (circ->build_state->desired_path_len > 1) {
+      circ->build_state->onehop_tunnel = 0;
+    }
     extend_info_free(info);
     first_node = 0;
   });