Andrew Nguyen : fusion: Avoid memory leaks on memory allocation failure in parse_display_name.

Alexandre Julliard julliard at winehq.org
Mon Jan 17 10:59:47 CST 2011


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

Author: Andrew Nguyen <anguyen at codeweavers.com>
Date:   Sun Jan 16 03:41:27 2011 -0600

fusion: Avoid memory leaks on memory allocation failure in parse_display_name.

---

 dlls/fusion/asmname.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/dlls/fusion/asmname.c b/dlls/fusion/asmname.c
index 54223af..669b7b6 100644
--- a/dlls/fusion/asmname.c
+++ b/dlls/fusion/asmname.c
@@ -562,7 +562,10 @@ static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyNam
     str = strdupW(szAssemblyName);
     save = str;
     if (!str)
-        return E_OUTOFMEMORY;
+    {
+        hr = E_OUTOFMEMORY;
+        goto done;
+    }
 
     ptr = strchrW(str, ',');
     if (ptr) *ptr = '\0';
@@ -576,7 +579,10 @@ static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyNam
 
     name->name = strdupW(str);
     if (!name->name)
-        return E_OUTOFMEMORY;
+    {
+        hr = E_OUTOFMEMORY;
+        goto done;
+    }
 
     if (!ptr)
         goto done;
@@ -622,7 +628,8 @@ static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyNam
         else if (!lstrcmpW(str, procarch))
         {
             name->procarch = strdupW(ptr);
-            hr = S_OK;
+            if (!name->procarch)
+                hr = E_OUTOFMEMORY;
         }
 
         if (FAILED(hr))




More information about the wine-cvs mailing list