From 7e632a75645c22efe7b1f122816e63839b119f8d Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 14 Dec 2005 18:55:17 +0000 Subject: another possible patch related to circuit_free and memory stomping. svn:r5580 --- src/or/circuitlist.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/or/circuitlist.c') diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 6fc97f1e1..43a55493f 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -280,6 +280,7 @@ circuit_free(circuit_t *circ) tor_free(circ->onionskin); circuit_free_cpath(circ->cpath); if (circ->rend_splice) { + tor_assert(circ->rend_splice->magic == CIRCUIT_MAGIC); circ->rend_splice->rend_splice = NULL; } /* Remove from map. */ @@ -715,9 +716,11 @@ _circuit_mark_for_close(circuit_t *circ, int line, const char *file) circ->marked_for_close = line; circ->marked_for_close_file = file; - if (circ->rend_splice && !circ->rend_splice->marked_for_close) { - /* do this after marking this circuit, to avoid infinite recursion. */ - circuit_mark_for_close(circ->rend_splice); + if (circ->rend_splice) { + if (!circ->rend_splice->marked_for_close) { + /* do this after marking this circuit, to avoid infinite recursion. */ + circuit_mark_for_close(circ->rend_splice); + } circ->rend_splice = NULL; } } -- cgit v1.2.3