From dc3bee593c98afd036f35cceb4205e54d1333314 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Sat, 13 Feb 2010 12:44:12 -0600 Subject: [PATCH 1/2] ole32: Add error checking to StorageBaseImpl_CreateStream. --- dlls/ole32/storage32.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index 3beff78..a7c12b5 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. -- 1.6.3.3