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

Alexandre Julliard julliard at winehq.org
Tue Sep 29 11:09:05 CDT 2009


Module: wine
Branch: master
Commit: d4f873055f10335dee490bde7558033857cc108f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d4f873055f10335dee490bde7558033857cc108f

Author: Peter Oberndorfer <kumbayo84 at 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;
 }




More information about the wine-cvs mailing list