mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
Bug 29034: Cleanup hs circuitmap when purpose changes.
Leave the other rend and hs_ident data around until circuit free, since code may still try to inspect it after marking the circuit for close. The circuitmap is the important thing to clean up, since repurposed intropoints must be removed from this map to ensure validity.
This commit is contained in:
parent
31c34f6524
commit
c525135dac
2 changed files with 11 additions and 0 deletions
5
changes/bug29034
Normal file
5
changes/bug29034
Normal file
|
@ -0,0 +1,5 @@
|
|||
o Major bugfixes (Onion service reachability):
|
||||
- Properly clean up the introduction point map when circuits change purpose
|
||||
from onion service circuits to pathbias, measurement, or other circuit types.
|
||||
This should fix some service-side instances of introduction point failure.
|
||||
Fixes bug 29034; bugfix on 0.3.2.1-alpha.
|
|
@ -3082,6 +3082,12 @@ circuit_change_purpose(circuit_t *circ, uint8_t new_purpose)
|
|||
circ->purpose,
|
||||
circuit_purpose_to_string(new_purpose),
|
||||
new_purpose);
|
||||
|
||||
/* Take specific actions if we are repurposing a hidden service circuit. */
|
||||
if (circuit_purpose_is_hidden_service(circ->purpose) &&
|
||||
!circuit_purpose_is_hidden_service(new_purpose)) {
|
||||
hs_circ_cleanup(circ);
|
||||
}
|
||||
}
|
||||
|
||||
old_purpose = circ->purpose;
|
||||
|
|
Loading…
Add table
Reference in a new issue