Uhh, this change is not correct. It overrides the proper handling of
exception filtering -- please revert.

Best regards,
Alex Ionescu


On Sun, Oct 28, 2018 at 9:03 AM Mark Jansen <mark.jan...@reactos.org> wrote:

>
> https://git.reactos.org/?p=reactos.git;a=commitdiff;h=40549483f60aa00e9fc952ba831027028f6df107
>
> commit 40549483f60aa00e9fc952ba831027028f6df107
> Author:     Mark Jansen <mark.jan...@reactos.org>
> AuthorDate: Thu Oct 18 22:07:37 2018 +0200
> Commit:     Mark Jansen <mark.jan...@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)
>
>
_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to