filter/source/msfilter/svdfppt.cxx |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

New commits:
commit ac655f20ad99bedd059ab2a046aa0a0ac2312beb
Author: Caolán McNamara <caol...@redhat.com>
Date:   Tue Mar 21 11:50:28 2017 +0000

    ofz#923 don't crash on missing shell storage
    
    Change-Id: I689fcf6b82d5df8121c1bb4ca1a92bf0f145d7f5

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 );
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to