Module: wine Branch: stable Commit: 87b315ee787ddb10cc1e6d0f1487c44d087b9188 URL: https://source.winehq.org/git/wine.git/?a=commit;h=87b315ee787ddb10cc1e6d0f1...
Author: Sebastian Lackner sebastian@fds-team.de Date: Sun Jul 8 21:19:56 2018 +0200
kernel32: Fill stack with meaningful values in call_process_entry mis-align workaround.
Signed-off-by: André Hentschel nerv@dawncrow.de Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit 61d92d1317272c4528872b091a5308905dd00429) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/kernel32/process.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c index 62dc815..e23786b 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c @@ -1082,7 +1082,9 @@ __ASM_GLOBAL_FUNC( call_process_entry, __ASM_CFI(".cfi_rel_offset %ebp,0\n\t") "movl %esp,%ebp\n\t" __ASM_CFI(".cfi_def_cfa_register %ebp\n\t") - "subl $12,%esp\n\t" /* deliberately mis-align the stack by 8, Doom 3 needs this */ + "pushl 4(%ebp)\n\t" /* deliberately mis-align the stack by 8, Doom 3 needs this */ + "pushl 4(%ebp)\n\t" /* Driller expects readable address at this offset */ + "pushl 4(%ebp)\n\t" "pushl 8(%ebp)\n\t" "call *12(%ebp)\n\t" "leave\n\t"