[or-cvs] [tor/master 4/5] Never queue a cell on a marked circuit

nickm at torproject.org nickm at torproject.org
Wed Sep 15 18:47:40 UTC 2010


Author: Nick Mathewson <nickm at torproject.org>
Date: Wed, 15 Sep 2010 13:06:54 -0400
Subject: Never queue a cell on a marked circuit
Commit: 87f18c9578323cbb9229aba9a271bc7a6362a07a

---
 changes/bug1184 |    2 ++
 src/or/relay.c  |    3 +++
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/changes/bug1184 b/changes/bug1184
index 003ad0d..856cdc6 100644
--- a/changes/bug1184
+++ b/changes/bug1184
@@ -4,4 +4,6 @@
       it may have been possible for a few queued cells to get relayed,
       even though they would have been immediately dropped by the next
       OR in the circuit.  Fix 1184; bugfix on 0.2.0.1-alpha.
+    - Never queue a cell for a circuit that's already been marked
+      for close.
 
diff --git a/src/or/relay.c b/src/or/relay.c
index e740fbf..6d51f18 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -2272,6 +2272,9 @@ append_cell_to_circuit_queue(circuit_t *circ, or_connection_t *orconn,
 {
   cell_queue_t *queue;
   int streams_blocked;
+  if (circ->marked_for_close)
+    return;
+
   if (direction == CELL_DIRECTION_OUT) {
     queue = &circ->n_conn_cells;
     streams_blocked = circ->streams_blocked_on_n_conn;
-- 
1.7.1




More information about the tor-commits mailing list