hs: Avoid possible double circuit close on error

Fixes #23610

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
David Goulet
2017-09-21 13:13:44 -04:00
committed by Nick Mathewson
parent d70a793cfc
commit 7f3dc8327a
2 changed files with 9 additions and 1 deletions
+4
View File
@@ -0,0 +1,4 @@
o Minor bugfixes (hidden service, relay):
- Avoid a possible double close of a circuit by the intro point on error
of sending the INTRO_ESTABLISHED cell. Fixes ticket 23610; bugfix on
0.3.0.1-alpha.
+5 -1
View File
@@ -254,7 +254,11 @@ handle_establish_intro(or_circuit_t *circ, const uint8_t *request,
goto done;
err:
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_TORPROTOCOL);
/* When sending the intro establish ack, on error the circuit can be marked
* as closed so avoid a double close. */
if (!TO_CIRCUIT(circ)->marked_for_close) {
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_TORPROTOCOL);
}
done:
trn_cell_establish_intro_free(parsed_cell);