[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - svtools/source

Michael Stahl mstahl at redhat.com
Wed Feb 11 13:02:17 PST 2015


 svtools/source/misc/embedhlp.cxx |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

New commits:
commit cbcfc31b124921d225323370f51f8eb8552d329a
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Feb 11 14:42:51 2015 +0100

    tdf#87303: svtools: relax the security a bit for embedded objects
    
    CVE-2014-3575 was about updating linked objects, there is no security
    issue with embedded objects so always allow updating the preview image
    for them.
    
    (regression from d005acae3aa315921f2c331612131626c470bd22)
    
    Change-Id: I6e4d013ddf4fbe08c5968c680bbe143dd0473a4b
    (cherry picked from commit 6aea0829f8650922f5422f2f2b2e432968d11b9b)
    Reviewed-on: https://gerrit.libreoffice.org/14424
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
index eb2aea4..5785701 100644
--- a/svtools/source/misc/embedhlp.cxx
+++ b/svtools/source/misc/embedhlp.cxx
@@ -44,6 +44,7 @@
 #include <com/sun/star/embed/NoVisualAreaSizeException.hpp>
 #include <com/sun/star/embed/XEmbeddedObject.hpp>
 #include <com/sun/star/embed/XStateChangeListener.hpp>
+#include <com/sun/star/embed/XLinkageSupport.hpp>
 #include <com/sun/star/datatransfer/XTransferable.hpp>
 #include <com/sun/star/chart2/XDefaultSizeTransmitter.hpp>
 #include <cppuhelper/implbase4.hxx>
@@ -604,15 +605,21 @@ SvStream* EmbeddedObjectRef::GetGraphicStream( bool bUpdate ) const
     if ( !xStream.is() )
     {
         SAL_INFO( "svtools.misc", "getting stream from object" );
-        bool bUserAllowsLinkUpdate(true);
+        bool bUpdateAllowed(true);
         const comphelper::EmbeddedObjectContainer* pContainer = GetContainer();
 
         if(pContainer)
         {
-            bUserAllowsLinkUpdate = pContainer->getUserAllowsLinkUpdate();
+            uno::Reference<embed::XLinkageSupport> const xLinkage(
+                    mpImpl->mxObj, uno::UNO_QUERY);
+            if (xLinkage.is() && xLinkage->isLink())
+            {
+                bUpdateAllowed = pContainer->getUserAllowsLinkUpdate();
+
+            }
         }
 
-        if(bUserAllowsLinkUpdate)
+        if (bUpdateAllowed)
         {
             // update wanted or no stream in container storage available
             xStream = GetGraphicReplacementStream(mpImpl->nViewAspect, mpImpl->mxObj, &mpImpl->aMediaType);


More information about the Libreoffice-commits mailing list