sd/source/filter/eppt/pptx-epptooxml.cxx | 34 +++++++++++++++++++------------ 1 file changed, 21 insertions(+), 13 deletions(-)
New commits: commit 2e3ec8558736013b38b5be7c2b949d19e7f5e4f0 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Oct 13 12:57:05 2022 +0100 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri Oct 14 10:37:21 2022 +0200 crashtesting: uncaught exception on export of forum-fr-20226.sxi to pptx due to not-found wav file linked to from presentation Change-Id: I48c7b4615d660a2a292feea36e228237235ab04f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141301 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx index d6ece36a5380..b3c56b6585e5 100644 --- a/sd/source/filter/eppt/pptx-epptooxml.cxx +++ b/sd/source/filter/eppt/pptx-epptooxml.cxx @@ -53,6 +53,7 @@ #include <com/sun/star/container/XIndexContainer.hpp> #include <com/sun/star/container/XNamed.hpp> #include <com/sun/star/presentation/XPresentationSupplier.hpp> +#include <tools/diagnose_ex.h> #include <oox/export/utils.hxx> @@ -2391,24 +2392,31 @@ void PowerPointExport::embedEffectAudio(const FSHelperPtr& pFS, const OUString& return; uno::Reference<io::XInputStream> xAudioStream; - if (sUrl.startsWith("vnd.sun.star.Package:")) + try { - uno::Reference<document::XStorageBasedDocument> xStorageBasedDocument(getModel(), uno::UNO_QUERY); - if (!xStorageBasedDocument.is()) - return; + if (sUrl.startsWith("vnd.sun.star.Package:")) + { + uno::Reference<document::XStorageBasedDocument> xStorageBasedDocument(getModel(), uno::UNO_QUERY); + if (!xStorageBasedDocument.is()) + return; - uno::Reference<embed::XStorage> xDocumentStorage = xStorageBasedDocument->getDocumentStorage(); - if (!xDocumentStorage.is()) - return; + uno::Reference<embed::XStorage> xDocumentStorage = xStorageBasedDocument->getDocumentStorage(); + if (!xDocumentStorage.is()) + return; - uno::Reference<io::XStream> xStream = comphelper::OStorageHelper::GetStreamAtPackageURL(xDocumentStorage, sUrl, - css::embed::ElementModes::READ, aProxy); + uno::Reference<io::XStream> xStream = comphelper::OStorageHelper::GetStreamAtPackageURL(xDocumentStorage, sUrl, + css::embed::ElementModes::READ, aProxy); - if (xStream.is()) - xAudioStream = xStream->getInputStream(); + if (xStream.is()) + xAudioStream = xStream->getInputStream(); + } + else + xAudioStream = comphelper::OStorageHelper::GetInputStreamFromURL(sUrl, getComponentContext()); + } + catch (const Exception&) + { + TOOLS_WARN_EXCEPTION("sd", "PowerPointExport::embedEffectAudio"); } - else - xAudioStream = comphelper::OStorageHelper::GetInputStreamFromURL(sUrl, getComponentContext()); if (!xAudioStream.is()) return;