[Libreoffice-commits] core.git: Branch 'libreoffice-7-1' - sc/source

Eike Rathke (via logerrit) logerrit at kemper.freedesktop.org
Sat Dec 19 01:48:59 UTC 2020


 sc/source/core/tool/token.cxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit abecbc3eb6d6d9fa6b51c45a52c24a2001ded195
Author:     Eike Rathke <erack at redhat.com>
AuthorDate: Fri Dec 18 20:27:34 2020 +0100
Commit:     Eike Rathke <erack at redhat.com>
CommitDate: Sat Dec 19 02:48:07 2020 +0100

    Resolves: tdf#138710 Do not push an out-of-bounds bound to boundaries
    
    ... if a virtual non-existent row is being shifted in for
    MAXROWCOUNT (MAXROW+1), so sc/source/core/tool/sharedformula.cxx
    SharedFormulaUtil::splitFormulaCellGroups() is not triggered to
    split a group there, which would throw an exception. Instead of
    returning false ...
    
        CellStoreType::position_type aPos = rCells.position(nRow);
        if (aPos.first == rCells.end())
            return false;
    
    However, avoiding the cause is the solution.
    
    Change-Id: I8f9adcb62bb78bc98092677b5d4fdc7fc3baf150
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107979
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Jenkins
    (cherry picked from commit 121d4f610a2b4caa871aa0132eccbd4e12d13b3f)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107994

diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index 859b44327a78..3cb4a8836d61 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -4538,7 +4538,8 @@ void checkBounds(
         // No intersections.
         return;
 
-    if (aAbs.aStart.Row() <= rCheckRange.aStart.Row())
+    // rCheckRange may be a virtual non-existent row being shifted in.
+    if (aAbs.aStart.Row() <= rCheckRange.aStart.Row() && rCheckRange.aStart.Row() < rLimits.GetMaxRowCount())
     {
         //    +-+ <---- top
         //    | |


More information about the Libreoffice-commits mailing list