[tor-commits] [tor/master] Avoid use-after-free of circ belonging to cancelled job

nickm at torproject.org nickm at torproject.org
Mon Feb 9 15:58:25 UTC 2015


commit 733751009058a8ff140c15ddd8b022da6a77afdd
Author: Sebastian Hahn <sebastian at torproject.org>
Date:   Mon Feb 9 16:04:51 2015 +0100

    Avoid use-after-free of circ belonging to cancelled job
    
    This fixes a bug where we decide to free the circuit because it isn't on
    any workqueue anymore, and then the job finishes and the circuit gets
    freed again.
    
    Fixes bug #14815, not in any released version of Tor.
---
 src/or/cpuworker.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c
index 5e8b32d..7fe2351 100644
--- a/src/or/cpuworker.c
+++ b/src/or/cpuworker.c
@@ -556,8 +556,7 @@ cpuworker_cancel_circ_handshake(or_circuit_t *circ)
     tor_free(job);
     tor_assert(total_pending_tasks > 0);
     --total_pending_tasks;
+    circ->workqueue_entry = NULL;
   }
-
-  circ->workqueue_entry = NULL;
 }
 





More information about the tor-commits mailing list