https://git.reactos.org/?p=reactos.git;a=commitdiff;h=40549483f60aa00e9fc95…
commit 40549483f60aa00e9fc952ba831027028f6df107
Author: Mark Jansen <mark.jansen(a)reactos.org>
AuthorDate: Thu Oct 18 22:07:37 2018 +0200
Commit: Mark Jansen <mark.jansen(a)reactos.org>
CommitDate: Sun Oct 28 13:01:38 2018 +0100
[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 8fc5a7ad61..2ff0102483 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)