Module: wine Branch: master Commit: 0c0fe4efb404f26eb29fc29c287a5273c38147b5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0c0fe4efb404f26eb29fc29c28...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Sat Apr 26 00:37:15 2014 +0400
oleaut32: Always free TLIBATTR in LoadRegTypeLib() (Valgrind).
---
dlls/oleaut32/typelib.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index 4213ae6..4a16fca 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -542,12 +542,17 @@ HRESULT WINAPI LoadRegTypeLib( TLIBATTR *attr;
res = ITypeLib_GetLibAttr(*ppTLib, &attr); - if (res == S_OK && (attr->wMajorVerNum != wVerMajor || attr->wMinorVerNum < wVerMinor)) + if (res == S_OK) { + BOOL mismatch = attr->wMajorVerNum != wVerMajor || attr->wMinorVerNum < wVerMinor; ITypeLib_ReleaseTLibAttr(*ppTLib, attr); - ITypeLib_Release(*ppTLib); - *ppTLib = NULL; - res = TYPE_E_LIBNOTREGISTERED; + + if (mismatch) + { + ITypeLib_Release(*ppTLib); + *ppTLib = NULL; + res = TYPE_E_LIBNOTREGISTERED; + } } } }