[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.3-desktop' - 3 commits - basic/source sc/qa sc/source svtools/source

Caolán McNamara caolanm at redhat.com
Tue Jun 26 19:49:38 UTC 2018


 basic/source/comp/scanner.cxx              |    2 +-
 sc/qa/unit/data/xls/forcepoint-pivot-1.xls |binary
 sc/source/filter/excel/xipivot.cxx         |    8 ++++----
 svtools/source/misc/embedhlp.cxx           |   12 +++++++++++-
 4 files changed, 16 insertions(+), 6 deletions(-)

New commits:
commit 3ca78fd4d5c710c9f6baff2b975969d9d2ff41db
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue May 29 13:12:12 2018 +0100

    forcepoint#43 endless update ole2 preview recursion
    
    Change-Id: I7a6a52d2ea63f840a8a1800fdf7039b1e7b24cdc
    Reviewed-on: https://gerrit.libreoffice.org/55004
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    (cherry picked from commit 1663a364c80fde2ac8396dd2fbcbee4240231271)

diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
index 564b5a096479..9c432a02af8c 100644
--- a/svtools/source/misc/embedhlp.cxx
+++ b/svtools/source/misc/embedhlp.cxx
@@ -235,6 +235,7 @@ struct EmbeddedObjectRef_Impl
     sal_Int64                                   nViewAspect;
     bool                                        bIsLocked:1;
     bool                                        bNeedUpdate:1;
+    bool                                        bUpdating:1;
 
     // #i104867#
     sal_uInt32                                  mnGraphicVersion;
@@ -247,6 +248,7 @@ struct EmbeddedObjectRef_Impl
         nViewAspect(embed::Aspects::MSOLE_CONTENT),
         bIsLocked(false),
         bNeedUpdate(false),
+        bUpdating(false),
         mnGraphicVersion(0),
         aDefaultSizeForChart_In_100TH_MM(awt::Size(8000,7000))
     {}
@@ -261,6 +263,7 @@ struct EmbeddedObjectRef_Impl
         nViewAspect(r.nViewAspect),
         bIsLocked(r.bIsLocked),
         bNeedUpdate(r.bNeedUpdate),
+        bUpdating(r.bUpdating),
         mnGraphicVersion(0),
         aDefaultSizeForChart_In_100TH_MM(r.aDefaultSizeForChart_In_100TH_MM)
     {
@@ -832,7 +835,14 @@ bool EmbeddedObjectRef::IsGLChart(const css::uno::Reference < css::embed::XEmbed
 
 void EmbeddedObjectRef::UpdateReplacement()
 {
-    GetReplacement( true );
+    if (mpImpl->bUpdating)
+    {
+        SAL_WARN("svtools.misc", "UpdateReplacement called while UpdateReplacement already underway");
+        return;
+    }
+    mpImpl->bUpdating = true;
+    GetReplacement(true);
+    mpImpl->bUpdating = false;
 }
 
 void EmbeddedObjectRef::UpdateReplacementOnDemand()
commit dbd8adf30c810558924929647fc5caea718e9635
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon May 28 21:51:01 2018 +0100

    forcepoint#42 check available str length
    
    Change-Id: Ie476968ddaa4c3e5475ae9aa6133e7aba38d5975
    Reviewed-on: https://gerrit.libreoffice.org/54978
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    (cherry picked from commit 15ea1cda0b3c37ff944ad9a239b7ed453e8b0591)

diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx
index e3a622b81f45..adb2d0e7af72 100644
--- a/basic/source/comp/scanner.cxx
+++ b/basic/source/comp/scanner.cxx
@@ -542,7 +542,7 @@ bool SbiScanner::NextSym()
             case '>': if( *pLine == '=' ) n = 2; break;
             case ':': if( *pLine == '=' ) n = 2; break;
         }
-        aSym = aLine.copy( nCol, n );
+        aSym = aLine.copy(nCol, std::min(n, aLine.getLength() - nCol));
         pLine += n-1; nCol = nCol + n;
     }
 
commit 47f090e2e4ba84684cdd1c0684cb1b9f2baa600f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon May 28 21:22:56 2018 +0100

    forcepoint#40 null deref
    
    presumably since
    
    commit 0098bee792c3e208ea4f6ef1c676958d3f4cd207
    Date:   Thu Sep 21 06:48:09 2017 +0200
    
        tdf#112501: Pivot table: popupbuttons are placed on wrong cells
    
    Change-Id: I5413c0ba06fca25cb22256a20ef9640767dd9e50
    Reviewed-on: https://gerrit.libreoffice.org/54970
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    (cherry picked from commit 69c5be9b26cf1a45e220d69f65b1bb0fa2aedaf6)

diff --git a/sc/qa/unit/data/xls/forcepoint-pivot-1.xls b/sc/qa/unit/data/xls/forcepoint-pivot-1.xls
new file mode 100644
index 000000000000..12919922666b
Binary files /dev/null and b/sc/qa/unit/data/xls/forcepoint-pivot-1.xls differ
diff --git a/sc/source/filter/excel/xipivot.cxx b/sc/source/filter/excel/xipivot.cxx
index abeeba02afdf..b8fd741a6cfe 100644
--- a/sc/source/filter/excel/xipivot.cxx
+++ b/sc/source/filter/excel/xipivot.cxx
@@ -1569,13 +1569,13 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
         itr    = aFieldBtns.begin();
         itrEnd = aFieldBtns.end();
         vector<const ScDPSaveDimension*>::const_iterator itDim = aFieldDims.begin();
-        for (; itr != itrEnd; ++itr, ++itDim)
+        for (; itr != itrEnd; ++itr)
         {
             ScMF nMFlag = ScMF::Button;
-            const ScDPSaveDimension* pDim = *itDim;
-            if (pDim->HasInvisibleMember())
+            const ScDPSaveDimension* pDim = itDim != aFieldDims.end() ? *itDim++ : nullptr;
+            if (pDim && pDim->HasInvisibleMember())
                 nMFlag |= ScMF::HiddenMember;
-            if (!pDim->IsDataLayout())
+            if (!pDim || !pDim->IsDataLayout())
                 nMFlag |= ScMF::ButtonPopup;
             rDoc.ApplyFlagsTab(itr->Col(), itr->Row(), itr->Col(), itr->Row(), itr->Tab(), nMFlag);
         }


More information about the Libreoffice-commits mailing list