From 3cc072ce7a6ecd4856cc63276fda069952a26034 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Thu, 19 May 2011 16:42:44 +0100 Subject: [PATCH] don't de-reference null pointer - fix crash with certain PPTX files --- oox/source/ppt/presentationfragmenthandler.cxx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/oox/source/ppt/presentationfragmenthandler.cxx b/oox/source/ppt/presentationfragmenthandler.cxx index 006cdab9792e..31a2781d845b 100644 --- a/oox/source/ppt/presentationfragmenthandler.cxx +++ b/oox/source/ppt/presentationfragmenthandler.cxx @@ -246,11 +246,13 @@ void PresentationFragmentHandler::endDocument() throw (SAXException, RuntimeExce } // importing slide page - pSlidePersistPtr->setMasterPersist( pMasterPersistPtr ); - pSlidePersistPtr->setTheme( pMasterPersistPtr->getTheme() ); - Reference< drawing::XMasterPageTarget > xMasterPageTarget( pSlidePersistPtr->getPage(), UNO_QUERY ); - if( xMasterPageTarget.is() ) - xMasterPageTarget->setMasterPage( pMasterPersistPtr->getPage() ); + if (pMasterPersistPtr.get()) { + pSlidePersistPtr->setMasterPersist( pMasterPersistPtr ); + pSlidePersistPtr->setTheme( pMasterPersistPtr->getTheme() ); + Reference< drawing::XMasterPageTarget > xMasterPageTarget( pSlidePersistPtr->getPage(), UNO_QUERY ); + if( xMasterPageTarget.is() ) + xMasterPageTarget->setMasterPage( pMasterPersistPtr->getPage() ); + } rFilter.getDrawPages().push_back( pSlidePersistPtr ); rFilter.setActualSlidePersist( pSlidePersistPtr ); importSlide( xSlideFragmentHandler, pSlidePersistPtr );