=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: urlmon: Fix possible NULL pointer access in heap_strdup*.

Alexandre Julliard julliard at winehq.org
Mon Nov 19 13:38:39 CST 2012


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

Author: André Hentschel <nerv at dawncrow.de>
Date:   Sat Nov 17 22:52:38 2012 +0100

urlmon: Fix possible NULL pointer access in heap_strdup*.

---

 dlls/urlmon/urlmon_main.h |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/urlmon/urlmon_main.h b/dlls/urlmon/urlmon_main.h
index 2d51818..01de984 100644
--- a/dlls/urlmon/urlmon_main.h
+++ b/dlls/urlmon/urlmon_main.h
@@ -261,7 +261,8 @@ static inline LPWSTR heap_strdupW(LPCWSTR str)
 
         size = (strlenW(str)+1)*sizeof(WCHAR);
         ret = heap_alloc(size);
-        memcpy(ret, str, size);
+        if(ret)
+            memcpy(ret, str, size);
     }
 
     return ret;
@@ -289,7 +290,8 @@ static inline LPWSTR heap_strdupAtoW(const char *str)
     if(str) {
         DWORD len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
         ret = heap_alloc(len*sizeof(WCHAR));
-        MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
+        if(ret)
+            MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
     }
 
     return ret;
@@ -302,7 +304,8 @@ static inline char *heap_strdupWtoA(const WCHAR *str)
     if(str) {
         size_t size = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);
         ret = heap_alloc(size);
-        WideCharToMultiByte(CP_ACP, 0, str, -1, ret, size, NULL, NULL);
+        if(ret)
+            WideCharToMultiByte(CP_ACP, 0, str, -1, ret, size, NULL, NULL);
     }
 
     return ret;




More information about the wine-cvs mailing list