This avoids an eventual stack overflow in exception-heavy applications.
Important note: when using the experimental Wow64 support on Linux, this change causes a crash during exception handling when unix_funcs->unwind_builtin_dll is called.
The call in dll/ntdll/signal_x86_64.c virtual_unwind() to unix_funcs->unwind_builtin_dll() should be commented out and replaced with 'status = STATUS_UNSUCCESSFUL;'. This is along the same lines as needing to comment out the unix_funcs->init_builtin_dll() call for Wow64.
From: Brendan Shanks bshanks@codeweavers.com
Avoids an eventual stack overflow in exception-heavy applications. --- dlls/wow64/syscall.c | 3 --- 1 file changed, 3 deletions(-)
diff --git a/dlls/wow64/syscall.c b/dlls/wow64/syscall.c index eb48f066b92..6709a575afa 100644 --- a/dlls/wow64/syscall.c +++ b/dlls/wow64/syscall.c @@ -721,15 +721,12 @@ NTSTATUS WINAPI Wow64SystemServiceEx( UINT num, UINT *args ) }
-static void cpu_simulate(void); - /********************************************************************** * simulate_filter */ static LONG CALLBACK simulate_filter( EXCEPTION_POINTERS *ptrs ) { Wow64PassExceptionToGuest( ptrs ); - cpu_simulate(); /* re-enter simulation to run the exception dispatcher */ return EXCEPTION_EXECUTE_HANDLER; }