summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2020-04-21 07:43:26 +0200
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2020-04-21 09:03:01 +0200
commit7dbff6fa55829e53be042e213b454d2466ff80fa (patch)
treed3e2a21ae0bef0bb9559f710cedfdd0da9c3074b /dbaccess
parentfd200917c322a10739d1b92797afe8edeab067dd (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')
-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 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();
}