aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/or/circuitlist.c8
-rw-r--r--src/or/connection_or.c1
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(&ocirc->p_conn_cells);
+
tor_free(circ->onionskin);
/* remove from map. */
@@ -420,6 +426,8 @@ circuit_free(circuit_t *circ)
cell_queue_clear(&ocirc->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);