[PATCH] align stack to 4 byte.

Marcus Meissner marcus at jet.franken.de
Wed Sep 27 15:10:16 CDT 2006


Hi,

RawShooter Premiums copy protection enters 
the signal handler with an unaligned stack,
and (I think) the unaligned fault handler / flag
enabled.

Just aligning the stack makes it go further (and crash
my X server, but thats the next problem).

I wonder if this is the right way. Or if to 4 byte
is sufficient.

The other exceptions seem to still work fine.

Ciao, Marcus
---

 dlls/ntdll/signal_i386.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

143397a34621b6fe74b1fead9d98c0ee9ac952b9
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index 44f47ec..bb74777 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -525,6 +525,8 @@ inline static void *init_handler( const 
     TEB *teb = get_current_teb();
     struct ntdll_thread_regs *thread_regs = (struct ntdll_thread_regs *)teb->SpareBytes1;
 
+    stack = (void*)(((unsigned long)stack)&~3);
+
     /* get %fs and %gs at time of the fault */
 #ifdef FS_sig
     *fs = LOWORD(FS_sig(sigcontext));
-- 
1.2.4



More information about the wine-patches mailing list