diff options
author | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2020-04-21 07:43:26 +0200 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2020-05-01 17:55:35 +0200 |
commit | 3a68efa1812fe11c52aeb06a8d8e9e191d2c47aa (patch) | |
tree | 10b22475816b090c75864cc9e46f16a6b57b5380 /dbaccess/source | |
parent | 77f02e09a9ef9f4c53dfcec481aa0f35c763beb0 (diff) |
Fix storage access after saving
Change-Id: I2cd664ac2ca5e80c566efee35bd34e7223501d75
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92605
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
(cherry picked from commit 7dbff6fa55829e53be042e213b454d2466ff80fa)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93190
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'dbaccess/source')
-rw-r--r-- | dbaccess/source/core/dataaccess/ModelImpl.cxx | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/dbaccess/source/core/dataaccess/ModelImpl.cxx b/dbaccess/source/core/dataaccess/ModelImpl.cxx index b88e3b06b761..d5c3b9b3e086 100644 --- a/dbaccess/source/core/dataaccess/ModelImpl.cxx +++ b/dbaccess/source/core/dataaccess/ModelImpl.cxx @@ -881,10 +881,6 @@ bool ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors( const Reference< // Preserve script signature if the script has not changed if (bTryToPreserveScriptSignature) { - // Need to close this storage, otherwise we can't open it for signing below - // (Windows needs exclusive file access) - //uno::Reference < lang::XComponent > xComp = xCurrentStorage; - //xComp->dispose(); OUString aODFVersion(comphelper::OStorageHelper::GetODFVersionFromStorage(_rxStorage)); uno::Reference<security::XDocumentDigitalSignatures> xDDSigns; try @@ -905,15 +901,8 @@ bool ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors( const Reference< uno::Reference<embed::XStorage> xMetaInf = xReadOrig->openStorageElement("META-INF", embed::ElementModes::READ); - OUString aURL = getDocFileLocation(); - Reference<XStorage> xTarget - = comphelper::OStorageHelper::GetStorageOfFormatFromURL( - ZIP_STORAGE_FORMAT_STRING, aURL, ElementModes::READWRITE); - if (!xTarget.is()) - throw uno::RuntimeException("Could not read " + aURL); uno::Reference<embed::XStorage> xTargetMetaInf - = xTarget->openStorageElement("META-INF", embed::ElementModes::READWRITE); - + = _rxStorage->openStorageElement("META-INF", embed::ElementModes::READWRITE); if (xMetaInf.is() && xTargetMetaInf.is()) { xMetaInf->copyElementTo(aScriptSignName, xTargetMetaInf, aScriptSignName); @@ -928,13 +917,13 @@ bool ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors( const Reference< // now check the copied signature uno::Sequence<security::DocumentSignatureInformation> aInfos = xDDSigns->verifyScriptingContentSignatures( - xTarget, uno::Reference<io::XInputStream>()); + _rxStorage, uno::Reference<io::XInputStream>()); SignatureState nState = DocumentSignatures::getSignatureState(aInfos); if (nState == SignatureState::OK || nState == SignatureState::NOTVALIDATED || nState == SignatureState::PARTIAL_OK) { // commit the ZipStorage from target medium - xTransact.set(xTarget, uno::UNO_QUERY); + xTransact.set(_rxStorage, uno::UNO_QUERY); if (xTransact.is()) xTransact->commit(); } |