Same here! This will break things. We should not be overriding the proper handling of the exception filters.
Best regards, Alex Ionescu
On Sun, Oct 28, 2018 at 9:03 AM Mark Jansen mark.jansen@reactos.org wrote:
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=824e5dba51aca08204045e...
commit 824e5dba51aca08204045e440be9c253a8469ac2 Author: Mark Jansen mark.jansen@reactos.org AuthorDate: Sat Oct 20 15:38:21 2018 +0200 Commit: Mark Jansen mark.jansen@reactos.org CommitDate: Sun Oct 28 13:01:38 2018 +0100
[KERNEL32] Directly use UnhandledExceptionFilter in BaseProcessStartup
dll/win32/kernel32/client/proc.c | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-)
diff --git a/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c index dbd5c10d0f..f36219457b 100644 --- a/dll/win32/kernel32/client/proc.c +++ b/dll/win32/kernel32/client/proc.c @@ -445,33 +445,6 @@ BasepSxsCloseHandles(IN PBASE_MSG_SXS_HANDLES Handles) } }
-static -LONG BaseExceptionFilter(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){}_SEH2_END;- }
- if ((ExceptionDisposition == EXCEPTION_CONTINUE_SEARCH ||
ExceptionDisposition == EXCEPTION_EXECUTE_HANDLER) &&
RealFilter != UnhandledExceptionFilter)- {
ExceptionDisposition = UnhandledExceptionFilter(ExceptionInfo);- }
- return ExceptionDisposition;
-}
VOID WINAPI BaseProcessStartup(PPROCESS_START_ROUTINE lpStartAddress) @@ -489,7 +462,7 @@ BaseProcessStartup(PPROCESS_START_ROUTINE lpStartAddress) /* Call the Start Routine */ ExitThread(lpStartAddress()); }
- _SEH2_EXCEPT(BaseExceptionFilter(_SEH2_GetExceptionInformation()))
_SEH2_EXCEPT(UnhandledExceptionFilter(_SEH2_GetExceptionInformation())) { /* Get the Exit code from the SEH Handler */ if (!BaseRunningInServerProcess)