mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 20:33:31 +01:00
Add another precondition for isolation-clearing; fix 3620
This commit is contained in:
parent
5df99cec98
commit
2c98104c74
@ -1041,8 +1041,15 @@ circuit_has_opened(origin_circuit_t *circ)
|
||||
* controller did it. Just let it slide. */
|
||||
}
|
||||
|
||||
if (can_try_clearing_isolation && !tried_clearing_isolation &&
|
||||
if (/* The circuit may have become non-open if it was cannibalized.*/
|
||||
circ->_base.state == CIRCUIT_STATE_OPEN &&
|
||||
/* Only if the purpose is clearable, and only if we haven't tried
|
||||
* to clear isolation yet, do we try. */
|
||||
can_try_clearing_isolation && !tried_clearing_isolation &&
|
||||
/* If !isolation_values_set, there is nothing to clear. */
|
||||
circ->isolation_values_set &&
|
||||
/* It's not legal to clear a circuit's isolation info if it's ever had
|
||||
* streams attached */
|
||||
!circ->isolation_any_streams_attached) {
|
||||
/* If we have any isolation information set on this circuit, and
|
||||
* we didn't manage to attach any streams to it, then we can
|
||||
|
Loading…
Reference in New Issue
Block a user