sfx2/source/doc/objmisc.cxx             |    3 +++
 xmlsecurity/qa/unit/signing/signing.cxx |   30 ++++++------------------------
 2 files changed, 9 insertions(+), 24 deletions(-)

New commits:
commit 085bf074b1203adee3bd4332225b8197e3fb253e
Author:     Jan-Marek Glogowski <[email protected]>
AuthorDate: Thu Mar 12 18:07:48 2020 +0100
Commit:     Thorsten Behrens <[email protected]>
CommitDate: Fri Mar 13 00:42:51 2020 +0100

    tdf#42316 always evaluate macro signatures on load
    
    As already stated in the comments of the signing unit tests,
    disabling macro security will not only ignore the signatures, but
    actually drop the macro signature, as these are never evaluated
    and as a result can't be restored for the new document.
    
    Change-Id: Ie41a9e72d3367c2eed58a52387bb67d8c41abff3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90435
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <[email protected]>
    (cherry picked from commit 929d46bbf42aefc1f6cf046c2b9cf3d7c4e1efc5)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90393
    Tested-by: Thorsten Behrens <[email protected]>

diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index 248cabf92f69..2da841e9b03b 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -924,6 +924,9 @@ void SfxObjectShell::BreakMacroSign_Impl( bool 
bBreakMacroSign )
 
 void SfxObjectShell::CheckSecurityOnLoading_Impl()
 {
+    // make sure LO evaluates the macro signatures, so it can be preserved
+    GetScriptingSignatureState();
+
     uno::Reference< task::XInteractionHandler > xInteraction;
     if ( GetMedium() )
         xInteraction = GetMedium()->GetInteractionHandler();
diff --git a/xmlsecurity/qa/unit/signing/signing.cxx 
b/xmlsecurity/qa/unit/signing/signing.cxx
index 6c9bf22e5d97..a3142a015000 100644
--- a/xmlsecurity/qa/unit/signing/signing.cxx
+++ b/xmlsecurity/qa/unit/signing/signing.cxx
@@ -872,15 +872,9 @@ void SigningTest::testPreserveMacroTemplateSignature12()
                    ODFVER_012_TEXT);
 
     // create new document from template
-    // we can't use createDoc / MacrosTest::loadFromDesktop, because 
ALWAYS_EXECUTE_NO_WARN
-    // won't verify the signature for templates, so the resulting document 
won't be able to
-    // preserve the templates signature.
     mxComponent->dispose();
-    mxComponent = mxDesktop->loadComponentFromURL(
-        aURL, "_default", 0,
-        comphelper::InitPropertySequence(
-            { { "MacroExecutionMode",
-                
uno::Any(document::MacroExecMode::FROM_LIST_AND_SIGNED_NO_WARN) } }));
+    mxComponent = mxDesktop->loadComponentFromURL(aURL, "_default", 0,
+                                                  
uno::Sequence<beans::PropertyValue>(0));
     CPPUNIT_ASSERT_MESSAGE(OUStringToOString(sLoadMessage, 
RTL_TEXTENCODING_UTF8).getStr(),
                            mxComponent.is());
 
@@ -982,15 +976,9 @@ void SigningTest::testDropMacroTemplateSignature()
                    SignatureState::NOTVALIDATED, OUString());
 
     // create new document from template
-    // we can't use createDoc / MacrosTest::loadFromDesktop, because 
ALWAYS_EXECUTE_NO_WARN
-    // won't verify the signature for templates, so the resulting document 
won't be able to
-    // preserve the templates signature.
     mxComponent->dispose();
-    mxComponent = mxDesktop->loadComponentFromURL(
-        aURL, "_default", 0,
-        comphelper::InitPropertySequence(
-            { { "MacroExecutionMode",
-                
uno::Any(document::MacroExecMode::FROM_LIST_AND_SIGNED_NO_WARN) } }));
+    mxComponent = mxDesktop->loadComponentFromURL(aURL, "_default", 0,
+                                                  
uno::Sequence<beans::PropertyValue>(0));
     CPPUNIT_ASSERT_MESSAGE(OUStringToOString(sLoadMessage, 
RTL_TEXTENCODING_UTF8).getStr(),
                            mxComponent.is());
 
@@ -1112,15 +1100,9 @@ void SigningTest::testPreserveMacroTemplateSignature10()
                    SignatureState::NOTVALIDATED, OUString());
 
     // create new document from template
-    // we can't use createDoc / MacrosTest::loadFromDesktop, because 
ALWAYS_EXECUTE_NO_WARN
-    // won't verify the signature for templates, so the resulting document 
won't be able to
-    // preserve the templates signature.
     mxComponent->dispose();
-    mxComponent = mxDesktop->loadComponentFromURL(
-        aURL, "_default", 0,
-        comphelper::InitPropertySequence(
-            { { "MacroExecutionMode",
-                
uno::Any(document::MacroExecMode::FROM_LIST_AND_SIGNED_NO_WARN) } }));
+    mxComponent = mxDesktop->loadComponentFromURL(aURL, "_default", 0,
+                                                  
uno::Sequence<beans::PropertyValue>(0));
     CPPUNIT_ASSERT_MESSAGE(OUStringToOString(sLoadMessage, 
RTL_TEXTENCODING_UTF8).getStr(),
                            mxComponent.is());
 
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to