diff options
author | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2020-04-21 07:43:26 +0200 |
---|---|---|
committer | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2020-04-21 09:03:01 +0200 |
commit | 7dbff6fa55829e53be042e213b454d2466ff80fa (patch) | |
tree | d3e2a21ae0bef0bb9559f710cedfdd0da9c3074b /dbaccess/source | |
parent | fd200917c322a10739d1b92797afe8edeab067dd (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>
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 e4882d53722c..1b74735ec108 100644 --- a/dbaccess/source/core/dataaccess/ModelImpl.cxx +++ b/dbaccess/source/core/dataaccess/ModelImpl.cxx @@ -873,10 +873,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 @@ -897,15 +893,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); @@ -920,13 +909,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(); } |