Paul Gofman : ntdll: Always align stack in call_user_apc_dispatcher() on x86_64.

Alexandre Julliard julliard at winehq.org
Tue Oct 13 15:42:02 CDT 2020


Module: wine
Branch: master
Commit: 53f7cb3c0888c852e0b4fdc9366c6ce53a54f433
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=53f7cb3c0888c852e0b4fdc9366c6ce53a54f433

Author: Paul Gofman <pgofman at codeweavers.com>
Date:   Tue Oct 13 02:52:18 2020 +0300

ntdll: Always align stack in call_user_apc_dispatcher() on x86_64.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49860
Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/unix/signal_x86_64.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index e11b2c70b5..00b07c4270 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -2011,6 +2011,7 @@ __ASM_GLOBAL_FUNC( call_user_apc_dispatcher,
                    "jrcxz 1f\n\t"
                    "movq 0x98(%rcx),%rax\n\t"       /* context_ptr->Rsp */
                    "leaq -0x5c0(%rax),%rsp\n\t"     /* sizeof(CONTEXT) + offsetof(frame,ret_addr) */
+                   "andq $~15,%rsp\n\t"
                    "jmp 2f\n"
                    "1:\tmovq 0x328(%rbx),%rax\n\t"  /* amd64_thread_data()->syscall_frame */
                    "leaq -0x4d0(%rax),%rsp\n\t"




More information about the wine-cvs mailing list