[PATCH 0/1] MR802: wow64: Don't re-enter cpu_simulate() from exception filter.
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. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/802
From: Brendan Shanks <bshanks(a)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; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/802
participants (2)
-
Brendan Shanks -
Brendan Shanks (@bshanks)