Module: wine Branch: master Commit: 4641ed5c9552adf665c733633a1928a487acf407 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4641ed5c9552adf665c733633a...
Author: Marcus Meissner marcus@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; }