Marcus Meissner : windowscodecs: Do not leak profile on errors (Coverity).

Alexandre Julliard julliard at winehq.org
Mon Mar 25 14:19:37 CDT 2013


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

Author: Marcus Meissner <marcus at jet.franken.de>
Date:   Fri Mar 15 20:09:14 2013 +0100

windowscodecs: Do not leak profile on errors (Coverity).

---

 dlls/windowscodecs/colorcontext.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/windowscodecs/colorcontext.c b/dlls/windowscodecs/colorcontext.c
index ca40184..268b6ef 100644
--- a/dlls/windowscodecs/colorcontext.c
+++ b/dlls/windowscodecs/colorcontext.c
@@ -126,8 +126,16 @@ static HRESULT load_profile(const WCHAR *filename, BYTE **profile, UINT *len)
     }
     ret = ReadFile(handle, *profile, size.u.LowPart, &count, NULL);
     CloseHandle(handle);
-    if (!ret) return HRESULT_FROM_WIN32(GetLastError());
-    if (count != size.u.LowPart) return E_FAIL;
+    if (!ret) {
+        HeapFree (GetProcessHeap(),0,*profile);
+        *profile = NULL;
+        return HRESULT_FROM_WIN32(GetLastError());
+    }
+    if (count != size.u.LowPart) {
+        HeapFree (GetProcessHeap(),0,*profile);
+        *profile = NULL;
+        return E_FAIL;
+    }
     *len = count;
     return S_OK;
 }




More information about the wine-cvs mailing list