diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/or/circuitlist.c | 8 | ||||
-rw-r--r-- | src/or/connection_or.c | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 18bb93d4ec..7de520c41b 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -158,9 +158,11 @@ circuit_set_p_circid_orconn(or_circuit_t *circ, uint16_t id, or_connection_t *conn) { int active; + int active; active = circ->p_conn_cells.n > 0; tor_assert(bool_eq(active, circ->next_active_on_p_conn)); + active = circ->p_conn_cells.n > 0; circuit_set_circid_orconn_helper(TO_CIRCUIT(circ), CELL_DIRECTION_IN, id, conn, active); @@ -177,9 +179,11 @@ circuit_set_n_circid_orconn(circuit_t *circ, uint16_t id, or_connection_t *conn) { int active; + int active; active = circ->n_conn_cells.n > 0; tor_assert(bool_eq(active, circ->next_active_on_n_conn)); + active = circ->n_conn_cells.n > 0; circuit_set_circid_orconn_helper(circ, CELL_DIRECTION_OUT, id, conn, active); @@ -410,6 +414,8 @@ circuit_free(circuit_t *circ) other->rend_splice = NULL; } + cell_queue_clear(ô->p_conn_cells); + tor_free(circ->onionskin); /* remove from map. */ @@ -420,6 +426,8 @@ circuit_free(circuit_t *circ) cell_queue_clear(ô->p_conn_cells); } + cell_queue_clear(&circ->n_conn_cells); + /* Remove from map. */ circuit_set_n_circid_orconn(circ, 0, NULL); diff --git a/src/or/connection_or.c b/src/or/connection_or.c index 7a3c6f2918..d9d3b69f7a 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -792,6 +792,7 @@ int connection_or_send_destroy(uint16_t circ_id, or_connection_t *conn, int reason) { cell_t cell; + circuit_t *circ; tor_assert(conn); |