summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2020-04-21 07:43:26 +0200
committerAndras Timar <andras.timar@collabora.com>2020-05-06 22:25:43 +0200
commitbee856774aa3ffbee314d096e5debe8d8170af06 (patch)
treec7a4746a5cc5f0985fa792ad9ffb1e6c7206e8e3 /dbaccess
parent7b7c26d3dd03a3b688ac3765a3d3fa1b5b246e39 (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')
-rw-r--r--dbaccess/source/core/dataaccess/ModelImpl.cxx17
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();
}