]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Extract data from DESTROY cell _after_ protocol violation checks.
authorGeorge Kadianakis <desnacked@riseup.net>
Fri, 18 May 2012 12:22:03 +0000 (15:22 +0300)
committerGeorge Kadianakis <desnacked@riseup.net>
Fri, 18 May 2012 12:22:03 +0000 (15:22 +0300)
src/or/command.c

index fb281a7f93044cfa042d21c9be91b1e0c837f7d8..ca3c34103717cd80c7d79370b10575a60de2a233 100644 (file)
@@ -591,7 +591,6 @@ command_process_destroy_cell(cell_t *cell, or_connection_t *conn)
   int reason;
 
   circ = circuit_get_by_circid_orconn(cell->circ_id, conn);
-  reason = (uint8_t)cell->payload[0];
   if (!circ) {
     log_info(LD_OR,"unknown circuit %d on connection from %s:%d. Dropping.",
              cell->circ_id, conn->_base.address, conn->_base.port);
@@ -599,6 +598,8 @@ command_process_destroy_cell(cell_t *cell, or_connection_t *conn)
   }
   log_debug(LD_OR,"Received for circID %d.",cell->circ_id);
 
+  reason = (uint8_t)cell->payload[0];
+
   if (!CIRCUIT_IS_ORIGIN(circ) &&
       cell->circ_id == TO_OR_CIRCUIT(circ)->p_circ_id) {
     /* the destroy came from behind */