From 40549483f60aa00e9fc952ba831027028f6df107 Mon Sep 17 00:00:00 2001 From: Mark Jansen Date: Thu, 18 Oct 2018 22:07:37 +0200 Subject: [PATCH] [KERNEL32] Use the default UnhandledExceptionFilter in BaseThreadStartup. This should allow unhandled exceptions in a thread to trigger our crash reporter, instead of killing the process directly. --- dll/win32/kernel32/client/thread.c | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/dll/win32/kernel32/client/thread.c b/dll/win32/kernel32/client/thread.c index 8fc5a7ad613..2ff01024839 100644 --- a/dll/win32/kernel32/client/thread.c +++ b/dll/win32/kernel32/client/thread.c @@ -26,29 +26,6 @@ BasepNotifyCsrOfThread(IN HANDLE ThreadHandle, /* FUNCTIONS ******************************************************************/ -static -LONG BaseThreadExceptionFilter(EXCEPTION_POINTERS * ExceptionInfo) -{ - LONG ExceptionDisposition = EXCEPTION_EXECUTE_HANDLER; - LPTOP_LEVEL_EXCEPTION_FILTER RealFilter; - - RealFilter = RtlDecodePointer(GlobalTopLevelExceptionFilter); - if (RealFilter != NULL) - { - _SEH2_TRY - { - ExceptionDisposition = RealFilter(ExceptionInfo); - } - _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) - { - ExceptionDisposition = UnhandledExceptionFilter(ExceptionInfo); - } - _SEH2_END; - } - - return ExceptionDisposition; -} - __declspec(noreturn) VOID WINAPI @@ -68,7 +45,7 @@ BaseThreadStartup(IN LPTHREAD_START_ROUTINE lpStartAddress, /* Get the exit code from the Thread Start */ ExitThread((lpStartAddress)((PVOID)lpParameter)); } - _SEH2_EXCEPT(BaseThreadExceptionFilter(_SEH2_GetExceptionInformation())) + _SEH2_EXCEPT(UnhandledExceptionFilter(_SEH2_GetExceptionInformation())) { /* Get the Exit code from the SEH Handler */ if (!BaseRunningInServerProcess) -- 2.17.1