Jacek Caban : rpcrt4: Fix use after free in get_iface_info.
Module: wine Branch: master Commit: bfab009e67338d3f6b0142c55ec3383a5147f6a3 URL: https://source.winehq.org/git/wine.git/?a=commit;h=bfab009e67338d3f6b0142c55... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Thu Mar 26 20:54:05 2020 +0100 rpcrt4: Fix use after free in get_iface_info. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/rpcrt4/ndr_typelib.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/dlls/rpcrt4/ndr_typelib.c b/dlls/rpcrt4/ndr_typelib.c index 91c4a07464..f1f25885b7 100644 --- a/dlls/rpcrt4/ndr_typelib.c +++ b/dlls/rpcrt4/ndr_typelib.c @@ -1276,18 +1276,18 @@ static HRESULT get_iface_info(ITypeInfo *typeinfo, WORD *funcs, WORD *parentfunc if (FAILED(hr)) goto err; hr = ITypeInfo_GetRefTypeInfo(*real_typeinfo, reftype, &parentinfo); - if (SUCCEEDED(hr)) - { - hr = ITypeInfo_GetTypeAttr(parentinfo, &typeattr); - ITypeInfo_Release(parentinfo); - } if (FAILED(hr)) goto err; - *parentiid = typeattr->guid; - ITypeInfo_ReleaseTypeAttr(parentinfo, typeattr); - - return S_OK; + hr = ITypeInfo_GetTypeAttr(parentinfo, &typeattr); + if (SUCCEEDED(hr)) + { + *parentiid = typeattr->guid; + ITypeInfo_ReleaseTypeAttr(parentinfo, typeattr); + } + ITypeInfo_Release(parentinfo); + if (SUCCEEDED(hr)) + return hr; err: ITypeInfo_Release(*real_typeinfo);
participants (1)
-
Alexandre Julliard