Commit b5d13d11 authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Fix a logic error in circuit_stream_is_being_handled.

When I introduced the unusable_for_new_circuits flag in
62fb209d, I had a spurious ! in the
circuit_stream_is_being_handled loop.  This made us decide that
non-unusable circuits (that is, usable ones) were the ones to avoid,
and caused it to launch a bunch of extra circuits.

Fixes bug 10456; bugfix on 0.2.4.12-alpha.
parent dabdc339
Loading
Loading
Loading
Loading

changes/bug10456

0 → 100644
+6 −0
Original line number Diff line number Diff line
  o Major bugfixes:
    - Avoid launching spurious extra circuits when a stream is pending.
      This fixes a bug where any circuit that _wasn't_ unusable for new
      streams would be treated as if it were, causing extra circuits to
      be launched. Fixes bug 10456; bugfix on 0.2.4.12-alpha.
+1 −1
Original line number Diff line number Diff line
@@ -828,7 +828,7 @@ circuit_stream_is_being_handled(entry_connection_t *conn,
      cpath_build_state_t *build_state = origin_circ->build_state;
      if (build_state->is_internal || build_state->onehop_tunnel)
        continue;
      if (!origin_circ->unusable_for_new_conns)
      if (origin_circ->unusable_for_new_conns)
        continue;

      exitnode = build_state_get_exit_node(build_state);