diff options
author | Nick Mathewson <nickm@torproject.org> | 2014-08-12 12:15:09 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2014-08-12 12:15:09 -0400 |
commit | 0044d74b3c51cf5824435e76eca2a675b51a14bc (patch) | |
tree | 593b95e09fd2cdc0492dc6b9eff9c15064e4e191 /src | |
parent | 981e037fd3b9e20b6e58e9c1470999a0f3a1ef0e (diff) | |
download | tor-0044d74b3c51cf5824435e76eca2a675b51a14bc.tar.gz tor-0044d74b3c51cf5824435e76eca2a675b51a14bc.zip |
Fix another case of 12848 in circuit_handle_first_hop
I looked for other places where we set circ->n_chan early, and found
one in circuit_handle_first_hop() right before it calls
circuit_send_next_onion_skin(). If onion_skin_create() fails there,
then n_chan will still be set when circuit_send_next_onion_skin()
returns. We should probably fix that too.
Diffstat (limited to 'src')
-rw-r--r-- | src/or/circuitbuild.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 11f8250934..5325eff64a 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -475,6 +475,7 @@ circuit_handle_first_hop(origin_circuit_t *circ) log_debug(LD_CIRC,"Conn open. Delivering first onion skin."); if ((err_reason = circuit_send_next_onion_skin(circ)) < 0) { log_info(LD_CIRC,"circuit_send_next_onion_skin failed."); + circ->base_.n_chan = NULL; return err_reason; } } |