From: Roger Dingledine Date: Thu, 24 Mar 2005 06:18:59 +0000 (+0000) Subject: cleanup so connection_ap_handshake_attach_chosen_circuit() always X-Git-Tag: tor-0.1.0.1-rc~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=09ef2b7e41922a09ab92c1006b8a55b472486ef5;p=thirdparty%2Ftor.git cleanup so connection_ap_handshake_attach_chosen_circuit() always gets open circs. svn:r3856 --- diff --git a/src/or/circuituse.c b/src/or/circuituse.c index e9c20f59a8..22b9916818 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -991,9 +991,7 @@ connection_ap_handshake_attach_chosen_circuit(connection_t *conn, conn->state == AP_CONN_STATE_CONTROLLER_WAIT); tor_assert(conn->socks_request); tor_assert(circ); - - if (circ->state != CIRCUIT_STATE_OPEN) - return 0; + tor_assert(circ->state == CIRCUIT_STATE_OPEN); conn->state = AP_CONN_STATE_CIRCUIT_WAIT; diff --git a/src/or/control.c b/src/or/control.c index 28940e1d4d..47c0cc0e68 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -745,6 +745,10 @@ static int handle_control_attachstream(connection_t *conn, uint32_t len, send_control_error(conn, ERR_NO_CIRC, "No circuit found with given ID"); return 0; } + if (circ->state != CIRCUIT_STATE_OPEN) { + send_control_error(conn, ERR_INTERNAL, "Refuse to attach stream to non-open circ."); + return 0; + } if (connection_ap_handshake_attach_chosen_circuit(ap_conn, circ) != 1) { send_control_error(conn, ERR_INTERNAL, "Unable to attach stream."); return 0;