Author: sewardj
Date: 2007-11-17 02:05:57 +0000 (Sat, 17 Nov 2007)
New Revision: 7171

Log:
Stack registration stuff: don't dereference NULL pointers (Eric
Sharkey, #150044).

Modified:
   trunk/coregrind/m_stacks.c


Modified: trunk/coregrind/m_stacks.c
===================================================================
--- trunk/coregrind/m_stacks.c  2007-11-17 01:49:06 UTC (rev 7170)
+++ trunk/coregrind/m_stacks.c  2007-11-17 02:05:57 UTC (rev 7171)
@@ -154,7 +154,7 @@
 
    VG_(debugLog)(2, "stacks", "deregister stack %lu\n", id);
 
-   if (current_stack->id == id) {
+   if (current_stack && current_stack->id == id) { 
       current_stack = NULL;
    }
 
@@ -209,7 +209,8 @@
    if (current_stack == NULL ||
        new_SP < current_stack->start || new_SP > current_stack->end) {
       Stack* new_stack = find_stack_by_addr(new_SP);
-      if (new_stack && new_stack->id != current_stack->id) {
+      if (new_stack 
+          && (current_stack == NULL || new_stack->id != current_stack->id)) { 
          /* The stack pointer is now in another stack.  Update the current
             stack information and return without doing anything else. */
          current_stack = new_stack;


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Valgrind-developers mailing list
Valgrind-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to