From 696fb4f3415e71b94d852f035c239901cf1923f5 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Mon, 14 Feb 2000 19:49:46 +0000 Subject: [PATCH] - fixed crash on mci channel tracing - fixed 16 to 32 bit translation for MCI_BREAK and MCI_SYSINFO messages --- dlls/winmm/mci.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/winmm/mci.c b/dlls/winmm/mci.c index 6e941e678c1..fcd0aeccd29 100644 --- a/dlls/winmm/mci.c +++ b/dlls/winmm/mci.c @@ -912,7 +912,7 @@ DWORD WINAPI mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrRet, if (lpstrRet && uRetLen) *lpstrRet = '\0'; -#define STR_OF(_x) (((_x)&0xFF000000)?(char*)(_x):"?") +#define STR_OF(_x) (IsBadReadPtr((char*)_x,1)?"?":(char*)(_x)) TRACE("[%d, %s, %08lx, %08lx/%s %08lx/%s %08lx/%s %08lx/%s %08lx/%s %08lx/%s]\n", wmd->wDeviceID, MCI_MessageToString(MCI_GetMessage(lpCmd)), dwFlags, data[0], STR_OF(data[0]), data[1], STR_OF(data[1]), @@ -2343,11 +2343,11 @@ DWORD MCI_SendCommand(UINT wDevID, UINT16 wMsg, DWORD dwParam1, if (bFrom32) { dwRet = MCI_SysInfo(wDevID, dwParam1, (LPMCI_SYSINFO_PARMSA)dwParam2); } else { - switch (MCI_MapMsg16To32A(0, wDevID, &dwParam2)) { + switch (MCI_MapMsg16To32A(0, wMsg, &dwParam2)) { case MCI_MAP_OK: case MCI_MAP_OKMEM: dwRet = MCI_SysInfo(wDevID, dwParam1, (LPMCI_SYSINFO_PARMSA)dwParam2); - MCI_UnMapMsg16To32A(0, wDevID, dwParam2); + MCI_UnMapMsg16To32A(0, wMsg, dwParam2); break; default: break; /* so that gcc doesnot bark */ } @@ -2357,11 +2357,11 @@ DWORD MCI_SendCommand(UINT wDevID, UINT16 wMsg, DWORD dwParam1, if (bFrom32) { dwRet = MCI_Break(wDevID, dwParam1, (LPMCI_BREAK_PARMS)dwParam2); } else { - switch (MCI_MapMsg16To32A(0, wDevID, &dwParam2)) { + switch (MCI_MapMsg16To32A(0, wMsg, &dwParam2)) { case MCI_MAP_OK: case MCI_MAP_OKMEM: dwRet = MCI_Break(wDevID, dwParam1, (LPMCI_BREAK_PARMS)dwParam2); - MCI_UnMapMsg16To32A(0, wDevID, dwParam2); + MCI_UnMapMsg16To32A(0, wMsg, dwParam2); break; default: break; /* so that gcc does not bark */ } -- 2.11.4.GIT