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( ...@@ -1690,10 +1690,8 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo(
NULL, 0, &pstgTmp ); NULL, 0, &pstgTmp );
} }
if (hr != S_OK) if (hr == S_OK)
goto cleanup; {
/* /*
* do the copy recursively * do the copy recursively
*/ */
...@@ -1701,6 +1699,8 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo( ...@@ -1701,6 +1699,8 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo(
NULL, pstgTmp ); NULL, pstgTmp );
IStorage_Release( pstgTmp ); IStorage_Release( pstgTmp );
}
IStorage_Release( pstgChild ); IStorage_Release( pstgChild );
} }
else if (curElement.type == STGTY_STREAM) else if (curElement.type == STGTY_STREAM)
...@@ -1726,9 +1726,8 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo( ...@@ -1726,9 +1726,8 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo(
STGM_READ|STGM_SHARE_EXCLUSIVE, STGM_READ|STGM_SHARE_EXCLUSIVE,
0, &pstrChild ); 0, &pstrChild );
if (hr != S_OK) if (hr == S_OK)
goto cleanup; {
/* /*
* Get the size of the source stream * Get the size of the source stream
*/ */
...@@ -1745,9 +1744,11 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo( ...@@ -1745,9 +1744,11 @@ static HRESULT WINAPI StorageBaseImpl_CopyTo(
hr = IStream_CopyTo( pstrChild, pstrTmp, strStat.cbSize, hr = IStream_CopyTo( pstrChild, pstrTmp, strStat.cbSize,
NULL, NULL ); NULL, NULL );
IStream_Release( pstrTmp );
IStream_Release( pstrChild ); IStream_Release( pstrChild );
} }
IStream_Release( pstrTmp );
}
else else
{ {
WARN("unknown element type: %d\n", curElement.type); 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