[PATCH 0/1] MR1308: ntdll: Fix incorrectly sized mov in user_mode_callback_return.
This caused non-interactible windows in my Wine builds, where in win32u `dispatch_win_proc_params` got inlined into `call_window_proc` and this mov overwrote the lower 32 bits of `result`, causing WM_NCHITTEST messages to always return 0 or 0xffffffff00000000 (correct result was -1 in that case). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1308
From: Torge Matthies <tmatthies(a)codeweavers.com> Signed-off-by: Torge Matthies <tmatthies(a)codeweavers.com> --- dlls/ntdll/unix/signal_x86_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c index ee34da51654..3c61e0728cb 100644 --- a/dlls/ntdll/unix/signal_x86_64.c +++ b/dlls/ntdll/unix/signal_x86_64.c @@ -1647,7 +1647,7 @@ __ASM_GLOBAL_FUNC( user_mode_callback_return, "movq 0x10(%rbp),%rsi\n\t" /* ret_ptr */ "movq 0x18(%rbp),%rdi\n\t" /* ret_len */ "movq %rcx,(%rsi)\n\t" - "movq %rdx,(%rdi)\n\t" + "movl %edx,(%rdi)\n\t" "movdqa -0xe0(%rbp),%xmm15\n\t" "movdqa -0xd0(%rbp),%xmm14\n\t" "movdqa -0xc0(%rbp),%xmm13\n\t" -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1308
Thanks for this fix! I was hunting the same issue on arm64, but this led me directly to the solution (in !1318). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1308#note_13855
participants (3)
-
Martin Storsjö -
Torge Matthies -
Torge Matthies (@tmatthies)