From 07d84bf656abf3c7b0e6be5f6170e41d70094a52 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Mon, 25 Sep 2006 06:43:41 +0200 Subject: [PATCH] ntdll: Avoid ebx being clobbered in exception handler. --- dlls/ntdll/signal_i386.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c index 6ff7e39ba89..44f47ecd33b 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -1481,7 +1481,7 @@ __ASM_GLOBAL_FUNC( DbgUserBreakPoint, "int $3; ret"); __ASM_GLOBAL_FUNC( EXC_CallHandler, " pushl %ebp\n" " movl %esp, %ebp\n" -" subl $4,%esp\n" +" pushl %ebx\n" " movl 28(%ebp), %edx\n" /* ugly hack to pass the 6th param needed because of Shrinker */ " pushl 24(%ebp)\n" " pushl 20(%ebp)\n" @@ -1489,6 +1489,7 @@ __ASM_GLOBAL_FUNC( EXC_CallHandler, " pushl 12(%ebp)\n" " pushl 8(%ebp)\n" " call " __ASM_NAME("call_exception_handler") "\n" +" popl %ebx\n" " leave\n" " ret\n" );