Commit 3ac34f74 authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

ole32: Properly free temporary objects when StorageBaseImpl_CopyTo fails.

parent 6afe24c3
......@@ -1690,10 +1690,8 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo(
NULL, 0, &pstgTmp );
}
if (hr != S_OK)
goto cleanup;
if (hr == S_OK)
{
/*
* do the copy recursively
*/
......@@ -1701,6 +1699,8 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo(
NULL, pstgTmp );
IStorage_Release( pstgTmp );
}
IStorage_Release( pstgChild );
}
else if (curElement.type == STGTY_STREAM)
......@@ -1726,9 +1726,8 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo(
STGM_READ|STGM_SHARE_EXCLUSIVE,
0, &pstrChild );
if (hr != S_OK)
goto cleanup;
if (hr == S_OK)
{
/*
* Get the size of the source stream
*/
......@@ -1745,9 +1744,11 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo(
hr = IStream_CopyTo( pstrChild, pstrTmp, strStat.cbSize,
NULL, NULL );
IStream_Release( pstrTmp );
IStream_Release( pstrChild );
}
IStream_Release( pstrTmp );
}
else
{
WARN("unknown element type: %d\n", curElement.type);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment