[PATCH] msacm32: add missing HeapALloc failure checks (Coverity)

Marcus Meissner marcus at jet.franken.de
Sat Jan 31 14:53:36 CST 2009


Hi,

CID 349, NULL ptr problem likely caused by us not
checking for HeapAlloc returns in this function, so added.

Ciao, Marcus
---
 dlls/msacm32/internal.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/dlls/msacm32/internal.c b/dlls/msacm32/internal.c
index cf76a57..4100aae 100644
--- a/dlls/msacm32/internal.c
+++ b/dlls/msacm32/internal.c
@@ -289,18 +289,29 @@ PWINE_ACMDRIVERID MSACM_RegisterDriver(LPCWSTR pszDriverAlias, LPCWSTR pszFileNa
           debugstr_w(pszDriverAlias), debugstr_w(pszFileName), pLocalDriver);
 
     padid = HeapAlloc(MSACM_hHeap, 0, sizeof(WINE_ACMDRIVERID));
+    if (!padid)
+        return NULL;
     padid->obj.dwType = WINE_ACMOBJ_DRIVERID;
     padid->obj.pACMDriverID = padid;
     padid->pszDriverAlias = NULL;
     if (pszDriverAlias)
     {
         padid->pszDriverAlias = HeapAlloc( MSACM_hHeap, 0, (strlenW(pszDriverAlias)+1) * sizeof(WCHAR) );
+        if (!padid->pszDriverAlias) {
+            HeapFree(MSACM_hHeap, 0, padid);
+            return NULL;
+        }
         strcpyW( padid->pszDriverAlias, pszDriverAlias );
     }
     padid->pszFileName = NULL;
     if (pszFileName)
     {
         padid->pszFileName = HeapAlloc( MSACM_hHeap, 0, (strlenW(pszFileName)+1) * sizeof(WCHAR) );
+        if (!padid->pszFileName) {
+            HeapFree(MSACM_hHeap, 0, padid->pszDriverAlias);
+            HeapFree(MSACM_hHeap, 0, padid);
+            return NULL;
+        }
         strcpyW( padid->pszFileName, pszFileName );
     }
     padid->pLocalDriver = pLocalDriver;
-- 
1.5.6



More information about the wine-patches mailing list