shlwapi: Fix logic of SHCreateMemStream in combination with NULL pointers.

This commit is contained in:
Peter Oberndorfer 2009-09-28 22:24:05 +02:00 committed by Alexandre Julliard
parent 60b8750d3b
commit d4f873055f

View file

@ -505,21 +505,22 @@ IStream * WINAPI SHOpenRegStreamW(HKEY hkey, LPCWSTR pszSubkey,
IStream * WINAPI SHCreateMemStream(const BYTE *lpbData, UINT dwDataLen)
{
IStream *iStrmRet = NULL;
LPBYTE lpbDup;
TRACE("(%p,%d)\n", lpbData, dwDataLen);
if (lpbData)
if (!lpbData)
dwDataLen = 0;
lpbDup = HeapAlloc(GetProcessHeap(), 0, dwDataLen);
if (lpbDup)
{
LPBYTE lpbDup = HeapAlloc(GetProcessHeap(), 0, dwDataLen);
memcpy(lpbDup, lpbData, dwDataLen);
iStrmRet = IStream_Create(NULL, lpbDup, dwDataLen);
if (lpbDup)
{
memcpy(lpbDup, lpbData, dwDataLen);
iStrmRet = IStream_Create(NULL, lpbDup, dwDataLen);
if (!iStrmRet)
HeapFree(GetProcessHeap(), 0, lpbDup);
}
if (!iStrmRet)
HeapFree(GetProcessHeap(), 0, lpbDup);
}
return iStrmRet;
}