Module: wine Branch: master Commit: 78c75e20aeff2a35911953c27559e8f5257e5d11 URL: http://source.winehq.org/git/wine.git/?a=commit;h=78c75e20aeff2a35911953c275...
Author: Detlef Riekenberg wine.dev@web.de Date: Fri Oct 17 16:36:59 2008 +0200
shlwapi: Fix pointer and size in AssocQueryStringA.
---
dlls/shlwapi/assoc.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/shlwapi/assoc.c b/dlls/shlwapi/assoc.c index 31a8420..0ca8678 100644 --- a/dlls/shlwapi/assoc.c +++ b/dlls/shlwapi/assoc.c @@ -303,6 +303,8 @@ HRESULT WINAPI AssocQueryStringA(ASSOCF cfFlags, ASSOCSTR str, LPCSTR pszAssoc, if (dwLenOut >= MAX_PATH) lpszReturnW = HeapAlloc(GetProcessHeap(), 0, (dwLenOut + 1) * sizeof(WCHAR)); + else + dwLenOut = sizeof(szReturnW) / sizeof(szReturnW[0]);
if (!lpszReturnW) hRet = E_OUTOFMEMORY; @@ -312,9 +314,10 @@ HRESULT WINAPI AssocQueryStringA(ASSOCF cfFlags, ASSOCSTR str, LPCSTR pszAssoc, lpszReturnW, &dwLenOut);
if (SUCCEEDED(hRet)) - WideCharToMultiByte(CP_ACP,0,szReturnW,-1,pszOut,dwLenOut,0,0); - *pcchOut = dwLenOut; + dwLenOut = WideCharToMultiByte(CP_ACP, 0, lpszReturnW, -1, + pszOut, *pcchOut, NULL, NULL);
+ *pcchOut = dwLenOut; if (lpszReturnW != szReturnW) HeapFree(GetProcessHeap(), 0, lpszReturnW); }