[cogl] stack: don't deref freed mem in _cogl_memory_stack_free



commit 1d27fedef9c599aa9976b809f18e0da1913cec26
Author: Robert Bragg <robert linux intel com>
Date:   Wed Jun 20 18:04:25 2012 +0100

    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 <neil linux intel com>

 cogl/cogl-memory-stack.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
---
diff --git a/cogl/cogl-memory-stack.c b/cogl/cogl-memory-stack.c
index 826a892..5f4547e 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);
     }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]