From 1fab6e351564724d36c6cf97ce10c7bc32b81e0d Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Sat, 13 Feb 2010 12:44:12 -0600 Subject: [PATCH] ole32: Add error checking to StorageBaseImpl_CreateStream. --- dlls/ole32/storage32.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index 3beff78b181..a7c12b535fa 100644 --- a/dlls/ole32/storage32.c +++ b/dlls/ole32/storage32.c @@ -834,6 +834,7 @@ static HRESULT WINAPI StorageBaseImpl_CreateStream( StgStreamImpl* newStream; DirEntry currentEntry, newStreamEntry; DirRef currentEntryRef, newStreamEntryRef; + HRESULT hr; TRACE("(%p, %s, %x, %d, %d, %p)\n", iface, debugstr_w(pwcsName), grfMode, @@ -933,14 +934,22 @@ static HRESULT WINAPI StorageBaseImpl_CreateStream( /* * Create an entry with the new data */ - StorageBaseImpl_CreateDirEntry(This, &newStreamEntry, &newStreamEntryRef); + hr = StorageBaseImpl_CreateDirEntry(This, &newStreamEntry, &newStreamEntryRef); + if (FAILED(hr)) + return hr; + /* * Insert the new entry in the parent storage's tree. */ - insertIntoTree( + hr = insertIntoTree( This, This->storageDirEntry, newStreamEntryRef); + if (FAILED(hr)) + { + StorageBaseImpl_DestroyDirEntry(This, newStreamEntryRef); + return hr; + } /* * Open the stream to return it.