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.jan...@reactos.org> wrote:

>
> https://git.reactos.org/?p=reactos.git;a=commitdiff;h=824e5dba51aca08204045e440be9c253a8469ac2
>
> commit 824e5dba51aca08204045e440be9c253a8469ac2
> Author:     Mark Jansen <mark.jan...@reactos.org>
> AuthorDate: Sat Oct 20 15:38:21 2018 +0200
> Commit:     Mark Jansen <mark.jan...@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)
>
>
_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to