diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c index 3a515678783..4b305e3a54c 100644 --- a/dlls/ntdll/signal_arm64.c +++ b/dlls/ntdll/signal_arm64.c @@ -386,8 +386,8 @@ static EXCEPTION_RECORD *setup_exception( ucontext_t *sigcontext, raise_func fun } *stack; DWORD exception_code = 0; - stack = (struct stack_layout *)(SP_sig(sigcontext) & ~15); - stack--; /* push the stack_layout structure */ + /* push the stack_layout structure */ + stack = (struct stack_layout *)((SP_sig(sigcontext) - sizeof(*stack)) & ~15); stack->rec.ExceptionRecord = NULL; stack->rec.ExceptionCode = exception_code;