summarylogtreecommitdiffstats
path: root/0011-ntdll-signal_set_full_context-amd64.patch
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;
 }