From 4f2db2ae0c155600f468f44732179065bf0ef883 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 21 Apr 2016 17:00:24 +0900 Subject: [PATCH] ole32: Fix a couple of reference leaks. Signed-off-by: Alexandre Julliard --- dlls/ole32/stg_prop.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dlls/ole32/stg_prop.c b/dlls/ole32/stg_prop.c index 04e02448f62..8e1aaef0472 100644 --- a/dlls/ole32/stg_prop.c +++ b/dlls/ole32/stg_prop.c @@ -2063,12 +2063,12 @@ static HRESULT PropertyStorage_BaseConstruct(IStream *stm, hr = PropertyStorage_CreateDictionaries(*pps); if (FAILED(hr)) { - IStream_Release(stm); (*pps)->cs.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&(*pps)->cs); HeapFree(GetProcessHeap(), 0, *pps); *pps = NULL; } + else IStream_AddRef( stm ); return hr; } @@ -2090,11 +2090,7 @@ static HRESULT PropertyStorage_ConstructFromStream(IStream *stm, TRACE("PropertyStorage %p constructed\n", ps); hr = S_OK; } - else - { - PropertyStorage_DestroyDictionaries(ps); - HeapFree(GetProcessHeap(), 0, ps); - } + else IPropertyStorage_Release( &ps->IPropertyStorage_iface ); } return hr; } @@ -2222,6 +2218,8 @@ static HRESULT WINAPI IPropertySetStorage_fnCreate( r = PropertyStorage_ConstructEmpty(stm, rfmtid, grfFlags, grfMode, ppprstg); + IStream_Release( stm ); + end: TRACE("returning 0x%08x\n", r); return r; @@ -2267,6 +2265,8 @@ static HRESULT WINAPI IPropertySetStorage_fnOpen( r = PropertyStorage_ConstructFromStream(stm, rfmtid, grfMode, ppprstg); + IStream_Release( stm ); + end: TRACE("returning 0x%08x\n", r); return r; @@ -2804,6 +2804,8 @@ HRESULT WINAPI StgCreatePropStg(IUnknown *unk, REFFMTID fmt, const CLSID *clsid, r = PropertyStorage_ConstructEmpty(stm, fmt, flags, STGM_CREATE|STGM_READWRITE|STGM_SHARE_EXCLUSIVE, prop_stg); + + IStream_Release( stm ); } end: @@ -2847,6 +2849,8 @@ HRESULT WINAPI StgOpenPropStg(IUnknown *unk, REFFMTID fmt, DWORD flags, r = PropertyStorage_ConstructFromStream(stm, fmt, STGM_READWRITE|STGM_SHARE_EXCLUSIVE, prop_stg); + + IStream_Release( stm ); } end: