[PATCH 4/4] ntdll: Guard against syscall stack overrun.

Jin-oh Kang jinoh.kang.kr at gmail.com
Mon Apr 11 20:23:11 CDT 2022


On Mon, Apr 11, 2022, 7:27 PM Paul Gofman <pgofman at codeweavers.com> wrote:

> Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
> ---
>  dlls/ntdll/unix/signal_arm.c    |  4 ++++
>  dlls/ntdll/unix/signal_arm64.c  |  4 ++++
>  dlls/ntdll/unix/signal_i386.c   |  4 ++++
>  dlls/ntdll/unix/signal_x86_64.c |  4 ++++
>  dlls/ntdll/unix/thread.c        |  3 ++-
>  dlls/ntdll/unix/unix_private.h  | 10 +++++++++-
>  dlls/ntdll/unix/virtual.c       |  5 +++++
>  7 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c
> index 1fea76f6563..1c03b707890 100644
> --- a/dlls/ntdll/unix/signal_arm.c
> +++ b/dlls/ntdll/unix/signal_arm.c
> @@ -780,6 +780,10 @@ static BOOL handle_syscall_fault( ucontext_t
> *context, EXCEPTION_RECORD *rec )
>             (DWORD)IP_sig(context), (DWORD)SP_sig(context),
> (DWORD)LR_sig(context),
>             (DWORD)PC_sig(context), (DWORD)CPSR_sig(context) );
>
> +    if (rec->ExceptionCode == STATUS_ACCESS_VIOLATION
> +            && is_inside_syscall_stack_guard( (char
> *)rec->ExceptionInformation[1] ))
> +        ERR_(seh)( "Syscall stack overrun.\n ");
> +
>

Would it be a good idea to let it grow instead? Instead of, or in addition
to, the increased 1M stack limit.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20220412/682e7cd4/attachment.htm>


More information about the wine-devel mailing list