summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-02-27 09:17:11 +0000
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-06-18 08:54:42 +0200
commit74def786fe5c20c5415060209e56ee30cde8e266 (patch)
treecf4955a031673221bd8f2e62ac414a088a607885 /sc
parent1e04dd3bca5b3bd3ea94af3304bdce87b705451b (diff)
tdf#134019: ofz#20904 check bounds
Change-Id: I5d6d381ebd359b233b309e08131f3dda21310d80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89620 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 8e3a29110c8ad739bedeea90932663608d8d3935) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96573 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc')
-rw-r--r--sc/qa/unit/data/xls/pass/ofz20904-1.xlsbin0 -> 271413 bytes
-rw-r--r--sc/source/core/data/dociter.cxx11
2 files changed, 7 insertions, 4 deletions
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
--- /dev/null
+++ b/sc/qa/unit/data/xls/pass/ofz20904-1.xls
Binary files differ
diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx
index f501bb8da0d0..5331e8ac33ae 100644
--- a/sc/source/core/data/dociter.cxx
+++ b/sc/source/core/data/dociter.cxx
@@ -892,14 +892,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()])
{
OSL_FAIL("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()