From 56382435fa9ca54193cccc65073c520edfa243c4 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Wed, 20 Jun 2012 18:04:25 +0100 Subject: [PATCH] stack: don't deref freed mem in _cogl_memory_stack_free This fixes _cogl_memory_stack_free to ensure we don't dereference freed memory as we iterate the sub-stacks to free them. Reviewed-by: Neil Roberts (cherry picked from commit 1d27fedef9c599aa9976b809f18e0da1913cec26) --- cogl/cogl-memory-stack.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cogl/cogl-memory-stack.c b/cogl/cogl-memory-stack.c index 826a8922a..5f4547e88 100644 --- a/cogl/cogl-memory-stack.c +++ b/cogl/cogl-memory-stack.c @@ -177,10 +177,9 @@ _cogl_memory_stack_free (CoglMemoryStack *stack) { CoglMemorySubStack *sub_stack; - for (sub_stack = stack->sub_stacks.tqh_first; - sub_stack; - sub_stack = sub_stack->list_node.tqe_next) + while ((sub_stack = COGL_TAILQ_FIRST (&stack->sub_stacks))) { + COGL_TAILQ_REMOVE (&stack->sub_stacks, sub_stack, list_node); _cogl_memory_sub_stack_free (sub_stack); }