Module: wine Branch: master Commit: d4f873055f10335dee490bde7558033857cc108f URL: http://source.winehq.org/git/wine.git/?a=commit;h=d4f873055f10335dee490bde75...
Author: Peter Oberndorfer kumbayo84@arcor.de Date: Mon Sep 28 22:24:05 2009 +0200
shlwapi: Fix logic of SHCreateMemStream in combination with NULL pointers.
---
dlls/shlwapi/regstream.c | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/dlls/shlwapi/regstream.c b/dlls/shlwapi/regstream.c index 439c4d9..ba68bd4 100644 --- a/dlls/shlwapi/regstream.c +++ b/dlls/shlwapi/regstream.c @@ -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) - { - LPBYTE lpbDup = HeapAlloc(GetProcessHeap(), 0, dwDataLen); + if (!lpbData) + dwDataLen = 0; + + lpbDup = HeapAlloc(GetProcessHeap(), 0, dwDataLen);
- if (lpbDup) - { - 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; }