Module: wine Branch: stable Commit: c7befdbcc764b61ebb469849c10d690d9cb24971 URL: https://source.winehq.org/git/wine.git/?a=commit;h=c7befdbcc764b61ebb469849c...
Author: Dirk Niggemann dirk.niggemann@gmail.com Date: Tue Feb 4 22:42:50 2020 +0000
krnl386.exe: Make CallProcEx32W16 clear CPEX_DEST_CDECL flag before looping over arguments.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48480 Signed-off-by: Dirk Niggemann dirk.niggemann@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit c57483ba4d77d04a7af120a6e016b53c5596fe81) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/krnl386.exe16/thunk.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/krnl386.exe16/thunk.c b/dlls/krnl386.exe16/thunk.c index c8ad3824c0..91a24f19c4 100644 --- a/dlls/krnl386.exe16/thunk.c +++ b/dlls/krnl386.exe16/thunk.c @@ -2475,11 +2475,12 @@ DWORD WINAPIV CallProc32W16( DWORD nrofargs, DWORD argconvmask, FARPROC proc32, DWORD WINAPIV CallProcEx32W16( DWORD nrofargs, DWORD argconvmask, FARPROC proc32, VA_LIST16 valist ) { DWORD args[32]; - unsigned int i; + unsigned int i, count = min( 32, nrofargs & ~CPEX_DEST_CDECL );
- TRACE("(%d,%d,%p args[",nrofargs,argconvmask,proc32); + TRACE("(%s,%d,%d,%p args[", nrofargs & CPEX_DEST_CDECL ? "cdecl": "stdcall", + nrofargs & ~CPEX_DEST_CDECL, argconvmask, proc32);
- for (i=0;i<nrofargs;i++) + for (i = 0; i < count; i++) { if (argconvmask & (1<<i)) {