shlwapi: Avoid buffer overflow in PathCombineA.
This commit is contained in:
parent
4b594361f9
commit
f26874c523
|
@ -155,20 +155,21 @@ LPSTR WINAPI PathCombineA(LPSTR lpszDest, LPCSTR lpszDir, LPCSTR lpszFile)
|
|||
if (!lpszDest)
|
||||
return NULL;
|
||||
if (!lpszDir && !lpszFile)
|
||||
{
|
||||
lpszDest[0] = 0;
|
||||
return NULL;
|
||||
}
|
||||
goto fail;
|
||||
|
||||
if (lpszDir)
|
||||
MultiByteToWideChar(CP_ACP,0,lpszDir,-1,szDir,MAX_PATH);
|
||||
if (!MultiByteToWideChar(CP_ACP,0,lpszDir,-1,szDir,MAX_PATH))
|
||||
goto fail;
|
||||
|
||||
if (lpszFile)
|
||||
MultiByteToWideChar(CP_ACP,0,lpszFile,-1,szFile,MAX_PATH);
|
||||
if (!MultiByteToWideChar(CP_ACP,0,lpszFile,-1,szFile,MAX_PATH))
|
||||
goto fail;
|
||||
|
||||
if (PathCombineW(szDest, lpszDir ? szDir : NULL, lpszFile ? szFile : NULL))
|
||||
if (WideCharToMultiByte(CP_ACP,0,szDest,-1,lpszDest,MAX_PATH,0,0))
|
||||
return lpszDest;
|
||||
|
||||
fail:
|
||||
lpszDest[0] = 0;
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue