From e26dd9dd4fc4b6234b9a43416ea45e15fc289ef6 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Thu, 19 Nov 2009 13:57:43 -0600 Subject: [PATCH 4/5] ole32: Forbid renaming an open storage. --- dlls/ole32/storage32.c | 5 +++-- dlls/ole32/tests/storage32.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index 773855f..4e667c6 100644 --- a/dlls/ole32/storage32.c +++ b/dlls/ole32/storage32.c @@ -765,9 +765,10 @@ static HRESULT WINAPI StorageBaseImpl_RenameElement( if (currentEntryRef != DIRENTRY_NULL) { - if (StorageBaseImpl_IsStreamOpen(This, currentEntryRef)) + if (StorageBaseImpl_IsStreamOpen(This, currentEntryRef) || + StorageBaseImpl_IsStorageOpen(This, currentEntryRef)) { - WARN("Stream is already open; cannot rename.\n"); + WARN("Element is already open; cannot rename.\n"); return STG_E_ACCESSDENIED; } diff --git a/dlls/ole32/tests/storage32.c b/dlls/ole32/tests/storage32.c index 42741ac..05d1473 100644 --- a/dlls/ole32/tests/storage32.c +++ b/dlls/ole32/tests/storage32.c @@ -1073,7 +1073,7 @@ static void test_substorage_share(void) /* cannot rename the storage while it's open */ r = IStorage_RenameElement(stg, stgname, othername); - todo_wine ok(r==STG_E_ACCESSDENIED, "IStorage->RenameElement should fail %08x\n", r); + ok(r==STG_E_ACCESSDENIED, "IStorage->RenameElement should fail %08x\n", r); if (SUCCEEDED(r)) IStorage_RenameElement(stg, othername, stgname); #if 0 -- 1.6.3.3