blob: 55989bb1d6a8b721ba8714e208f17fc5394d2c9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index 84b3422d491..5b12e963c1e 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -952,8 +952,9 @@ NTSTATUS signal_set_full_context( CONTEXT *context )
{
NTSTATUS status = NtSetContextThread( GetCurrentThread(), context );
- if (!status && (context->ContextFlags & CONTEXT_INTEGER) == CONTEXT_INTEGER)
- amd64_thread_data()->syscall_frame->restore_flags |= CONTEXT_INTEGER;
+ unsigned int real_mask = CONTEXT_INTEGER & ~CONTEXT_AMD64;
+ if (!status && (context->ContextFlags & real_mask) == real_mask)
+ amd64_thread_data()->syscall_frame->restore_flags |= real_mask;
return status;
}
|