From 58a96d3ccedbade4f1a8bfbbc4b7d8f1615cfc69 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 14 Oct 2014 10:03:17 +0100 Subject: bff: terminate on SAXException on malformed input SAXException thrown and not caught Change-Id: I874ffbcd457e102b572f398f4e531f4be30ca3d3 --- package/source/xstor/xstorage.cxx | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'package/source/xstor') diff --git a/package/source/xstor/xstorage.cxx b/package/source/xstor/xstorage.cxx index 3ac32e987694..cb1e4f4bafc2 100644 --- a/package/source/xstor/xstorage.cxx +++ b/package/source/xstor/xstorage.cxx @@ -5186,7 +5186,28 @@ uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OStorage::getAllRel if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML ) throw uno::RuntimeException( THROW_WHERE ); - return m_pImpl->GetAllRelationshipsIfAny(); + uno::Sequence< uno::Sequence< beans::StringPair > > aRet; + try + { + aRet = m_pImpl->GetAllRelationshipsIfAny(); + } + catch (const io::IOException&) + { + throw; + } + catch (const uno::RuntimeException&) + { + throw; + } + catch (const uno::Exception &) + { + uno::Any aCaught( ::cppu::getCaughtException() ); + throw lang::WrappedTargetRuntimeException(THROW_WHERE "Can't getAllRelationships!", + uno::Reference< uno::XInterface >(), + aCaught); + } + + return aRet; } void SAL_CALL OStorage::insertRelationshipByID( const OUString& sID, const uno::Sequence< beans::StringPair >& aEntry, sal_Bool bReplace ) -- cgit