Browse Source

Don't cannibalize already cannibalized circuits

This ensures we don't build circuits that have 5 hops or more. Patch
contributed by wanoskarnet, thanks!
Sebastian Hahn 12 years ago
parent
commit
2755b09c52
2 changed files with 6 additions and 0 deletions
  1. 5 0
      changes/bug5231
  2. 1 0
      src/or/circuitlist.c

+ 5 - 0
changes/bug5231

@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+    - Ensure we don't cannibalize circuits that are longer than three hops
+      already, so we don't end up making circuits with 5 or more hops. Patch
+      contributed by wanoskarnet. Fixes bug 5231; bugfix on 0.1.0.1-rc which
+      introduced cannibalization.

+ 1 - 0
src/or/circuitlist.c

@@ -1086,6 +1086,7 @@ circuit_find_to_cannibalize(uint8_t purpose, extend_info_t *info,
           (!need_capacity || circ->build_state->need_capacity) &&
           (internal == circ->build_state->is_internal) &&
           circ->remaining_relay_early_cells &&
+          circ->build_state->desired_path_len == DEFAULT_ROUTE_LEN &&
           !circ->build_state->onehop_tunnel &&
           !circ->isolation_values_set) {
         if (info) {