From 995df129f8764cf37975fd0ec68c9b32d9bb9643 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 | 3 ++- dlls/ole32/tests/storage32.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index 773855f..8321190 100644 --- a/dlls/ole32/storage32.c +++ b/dlls/ole32/storage32.c @@ -765,7 +765,8 @@ 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"); 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