summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-03-26 09:23:48 +0100
committerMichael Stahl <Michael.Stahl@cib.de>2019-08-27 14:12:26 +0200
commit4d44349476bce624ef16492193b79f6437f4d952 (patch)
tree2294f2b85c3b64ddf4c89080a074d9730f6d29c9
parentee6a2ca536ffdaa7f58eb55edff6f10800e0a74c (diff)
forcepoint #30 check validity of group range
Change-Id: Ie0611f36809b051ce46030e44c137b4e1f8d2fe0 Reviewed-on: https://gerrit.libreoffice.org/51865 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
-rwxr-xr-xsc/qa/unit/data/xls/fail/forcepoint-group-range-1.xlsbin0 -> 163886 bytes
-rw-r--r--sc/source/core/data/column3.cxx2
2 files changed, 2 insertions, 0 deletions
diff --git a/sc/qa/unit/data/xls/fail/forcepoint-group-range-1.xls b/sc/qa/unit/data/xls/fail/forcepoint-group-range-1.xls
new file mode 100755
index 000000000000..1aca9c7f113e
--- /dev/null
+++ b/sc/qa/unit/data/xls/fail/forcepoint-group-range-1.xls
Binary files differ
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index adcbd04db774..a649e18ac6eb 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -3002,6 +3002,8 @@ public:
xPrevGrp->mnLength += xCurGrp->mnLength;
pCur->SetCellGroup(xPrevGrp);
sc::formula_block::iterator itGrpEnd = it;
+ if (xCurGrp->mnLength > std::distance(itGrpEnd, itEnd))
+ throw css::lang::IllegalArgumentException();
std::advance(itGrpEnd, xCurGrp->mnLength);
for (++it; it != itGrpEnd; ++it)
{