sc/qa/unit/data/xls/pass/ofz20904-1.xls |binary
 sc/source/core/data/dociter.cxx         |   11 +++++++----
 2 files changed, 7 insertions(+), 4 deletions(-)

New commits:
commit 8e3a29110c8ad739bedeea90932663608d8d3935
Author:     Caolán McNamara <[email protected]>
AuthorDate: Thu Feb 27 09:17:11 2020 +0000
Commit:     Caolán McNamara <[email protected]>
CommitDate: Sat Feb 29 19:46:44 2020 +0100

    ofz#20904 check bounds
    
    Change-Id: I5d6d381ebd359b233b309e08131f3dda21310d80
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89620
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sc/qa/unit/data/xls/pass/ofz20904-1.xls 
b/sc/qa/unit/data/xls/pass/ofz20904-1.xls
new file mode 100644
index 000000000000..44dbe8f6e222
Binary files /dev/null and b/sc/qa/unit/data/xls/pass/ofz20904-1.xls differ
diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx
index 2308a8477e20..bdbf1f2be63c 100644
--- a/sc/source/core/data/dociter.cxx
+++ b/sc/source/core/data/dociter.cxx
@@ -890,14 +890,17 @@ void ScCellIterator::init()
     if (maStartPos.Tab() > maEndPos.Tab())
         maStartPos.SetTab(maEndPos.Tab());
 
-    maCurPos = maStartPos;
-
-    if (!mpDoc->maTabs[maCurPos.Tab()])
+    if (!mpDoc->maTabs[maStartPos.Tab()])
     {
         assert(!"Table not found");
         maStartPos = ScAddress(mpDoc->MaxCol()+1, mpDoc->MaxRow()+1, 
MAXTAB+1); // -> Abort on GetFirst.
-        maCurPos = maStartPos;
     }
+    else
+    {
+        
maStartPos.SetCol(mpDoc->maTabs[maStartPos.Tab()]->ClampToAllocatedColumns(maStartPos.Col()));
+    }
+
+    maCurPos = maStartPos;
 }
 
 bool ScCellIterator::getCurrent()
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to