tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit a3915d48f6d3f3959298e16edd20a8835ab2ae20
parent ea209f884b90d1d38e6e40848a8b32f70ebd2d8b
Author: Mike Perry <mikeperry-git@torproject.org>
Date:   Thu,  6 Nov 2025 21:03:42 +0000

Revert the two previous attempts at #41037.

Neither of these fully fixed the issue, which was introduced because the Tor
Browser Circuit Display Support code in #40872 began accessing partially-altered
conflux sets via control port CIRC_MINOR events.

Diffstat:
Msrc/core/or/conflux_pool.c | 5-----
Msrc/core/or/conflux_util.h | 5++---
2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/core/or/conflux_pool.c b/src/core/or/conflux_pool.c @@ -1460,11 +1460,6 @@ unlinked_circuit_closed(circuit_t *circ) /* This circuit is part of set that has already been removed previously freed * by another leg closing. */ if (!unlinked) { - /* This circuit is not Conflux related anymore regardless of its purpose so - * remove the pending nonce so after this function, the circuit is not - * considered conflux with CIRCUIT_IS_CONFLUX(). */ - tor_free(circ->conflux_pending_nonce); - circ->conflux_pending_nonce = NULL; return; } diff --git a/src/core/or/conflux_util.h b/src/core/or/conflux_util.h @@ -28,9 +28,8 @@ CIRCUIT_IS_CONFLUX(const circuit_t *circ) tor_assert_nonfatal(circ->purpose == CIRCUIT_PURPOSE_CONFLUX_LINKED); return true; } else { - /* We don't assert on purposes here because we can end up in this branch - * with circ->conflux being NULL but for a conflux purpose. This happens in - * the about_to_free() code path. */ + tor_assert_nonfatal(circ->purpose != CIRCUIT_PURPOSE_CONFLUX_LINKED); + tor_assert_nonfatal(circ->purpose != CIRCUIT_PURPOSE_CONFLUX_UNLINKED); return false; } }