From 84650ebbb2cc69dd657b1935674011da3ddcdfed Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Sun, 13 Aug 2006 20:46:54 +0200 Subject: [PATCH] winedbg: Native dbghelp can modify the passed debug context in StackWalk, so guard against it. --- programs/winedbg/stack.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/programs/winedbg/stack.c b/programs/winedbg/stack.c index 70a7a11d9df..dd0877eb67b 100644 --- a/programs/winedbg/stack.c +++ b/programs/winedbg/stack.c @@ -147,6 +147,10 @@ unsigned stack_fetch_frames(void) { STACKFRAME64 sf; unsigned nf = 0; + /* as native stackwalk can modify the context passed to it, simply copy + * it to avoid any damage + */ + CONTEXT ctx = dbg_context; HeapFree(GetProcessHeap(), 0, dbg_curr_thread->frames); dbg_curr_thread->frames = NULL; @@ -163,7 +167,7 @@ unsigned stack_fetch_frames(void) } while (StackWalk64(IMAGE_FILE_MACHINE_I386, dbg_curr_process->handle, - dbg_curr_thread->handle, &sf, &dbg_context, stack_read_mem, + dbg_curr_thread->handle, &sf, &ctx, stack_read_mem, SymFunctionTableAccess64, SymGetModuleBase64, NULL)) { dbg_curr_thread->frames = dbg_heap_realloc(dbg_curr_thread->frames,