Module: wine Branch: master Commit: e46c66a1f545e0e90f5a2c5c962f4a6464ebdca8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e46c66a1f545e0e90f5a2c5c96...
Author: Andrew Nguyen anguyen@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))