summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-10-14 10:03:17 +0100
committerCaolán McNamara <caolanm@redhat.com>2014-10-14 10:04:27 +0100
commit58a96d3ccedbade4f1a8bfbbc4b7d8f1615cfc69 (patch)
tree0b7eaf803bc1a835525b282c31d69a981c31c1d2
parent899e472598e7c03ac05edd27343054306e49aee8 (diff)
bff: terminate on SAXException on malformed input
SAXException thrown and not caught Change-Id: I874ffbcd457e102b572f398f4e531f4be30ca3d3
-rw-r--r--package/source/xstor/xstorage.cxx23
1 files changed, 22 insertions, 1 deletions
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 )