summarylogtreecommitdiffstats
path: root/0011-ntdll-signal_set_full_context-amd64.patch
diff options
context:
space:
mode:
authormoonshadow5652023-12-13 00:55:59 +0100
committermoonshadow5652023-12-13 00:55:59 +0100
commitfc6b924fd8b9e4be749a4c754fd99444bfb628ba (patch)
tree919f28b48cc42b4a8641740f0bd33e372f800468 /0011-ntdll-signal_set_full_context-amd64.patch
parentd4798a0f8779d6540d5168d4c447ce651259bed0 (diff)
downloadaur-fc6b924fd8b9e4be749a4c754fd99444bfb628ba.tar.gz
fixes for 13.23
Diffstat (limited to '0011-ntdll-signal_set_full_context-amd64.patch')
-rw-r--r--0011-ntdll-signal_set_full_context-amd64.patch16
1 files changed, 16 insertions, 0 deletions
diff --git a/0011-ntdll-signal_set_full_context-amd64.patch b/0011-ntdll-signal_set_full_context-amd64.patch
new file mode 100644
index 000000000000..55989bb1d6a8
--- /dev/null
+++ b/0011-ntdll-signal_set_full_context-amd64.patch
@@ -0,0 +1,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;
+ }
+