From c57483ba4d77d04a7af120a6e016b53c5596fe81 Mon Sep 17 00:00:00 2001 From: Dirk Niggemann Date: Tue, 4 Feb 2020 22:42:50 +0000 Subject: [PATCH] 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 Signed-off-by: Alexandre Julliard --- 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 c8ad3824c0f..91a24f19c4d 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