summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-03-21 11:50:28 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-03-21 11:50:28 +0000
commitac655f20ad99bedd059ab2a046aa0a0ac2312beb (patch)
tree5e58775d0f2db7f819810664675a582e07de13d1 /filter
parent63a9cca54e589bfeff3f6214fc63e010f5662c1c (diff)
ofz#923 don't crash on missing shell storage
Change-Id: I689fcf6b82d5df8121c1bb4ca1a92bf0f145d7f5
Diffstat (limited to 'filter')
-rw-r--r--filter/source/msfilter/svdfppt.cxx16
1 files changed, 10 insertions, 6 deletions
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index ed94ca963e50..92e5f8fa1be5 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -1901,14 +1901,18 @@ SdrObject* SdrPowerPointImport::ImportOLE( long nOLEId,
aNm = pOe->pShell->getEmbeddedObjectContainer().CreateUniqueObjectName();
// object is not an own object
- tools::SvRef<SotStorage> xTarget = SotStorage::OpenOLEStorage( pOe->pShell->GetStorage(), aNm, StreamMode::READWRITE );
- if ( xObjStor.is() && xTarget.is() )
+ const css::uno::Reference < css::embed::XStorage >& rStorage = pOe->pShell->GetStorage();
+ if (rStorage.is())
{
- xObjStor->CopyTo( xTarget.get() );
- if( !xTarget->GetError() )
- xTarget->Commit();
+ tools::SvRef<SotStorage> xTarget = SotStorage::OpenOLEStorage(rStorage, aNm, StreamMode::READWRITE);
+ if (xObjStor.is() && xTarget.is())
+ {
+ xObjStor->CopyTo(xTarget.get());
+ if (!xTarget->GetError())
+ xTarget->Commit();
+ }
+ xTarget.clear();
}
- xTarget.clear();
uno::Reference < embed::XEmbeddedObject > xObj =
pOe->pShell->getEmbeddedObjectContainer().GetEmbeddedObject( aNm );