[Libreoffice-commits] core.git: dbaccess/source

Samuel Mehrbrodt (via logerrit) logerrit at kemper.freedesktop.org
Tue Apr 21 07:03:37 UTC 2020


 dbaccess/source/core/dataaccess/ModelImpl.cxx |   17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

New commits:
commit 7dbff6fa55829e53be042e213b454d2466ff80fa
Author:     Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
AuthorDate: Tue Apr 21 07:43:26 2020 +0200
Commit:     Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
CommitDate: Tue Apr 21 09:03:01 2020 +0200

    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 at cib.de>

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();
                     }


More information about the Libreoffice-commits mailing list