ntdll: Fix NtContinue from within exception context on ARM64.

When handling an exception, NtContinue can be called from within the signal
handler, in which case the raise(SIGUSR2) call ends up getting eaten and
integer register context never ends up getting restored. Switch to the
method used on X86 to avoid these issues.
This commit is contained in:
Billy Laws 2023-07-11 22:45:04 +01:00 committed by Alexandre Julliard
parent ab296a305e
commit 88e336214d

View file

@ -569,7 +569,8 @@ NTSTATUS signal_set_full_context( CONTEXT *context )
{
NTSTATUS status = NtSetContextThread( GetCurrentThread(), context );
if (!status && (context->ContextFlags & CONTEXT_INTEGER) == CONTEXT_INTEGER) raise( SIGUSR2 );
if (!status && (context->ContextFlags & CONTEXT_INTEGER) == CONTEXT_INTEGER)
arm64_thread_data()->syscall_frame->restore_flags |= CONTEXT_INTEGER;
return status;
}