summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-05-29 10:45:39 +0100
committerKohei Yoshida <libreoffice@kohei.us>2014-05-29 19:00:51 -0500
commit456e2353ef9ae4e1034d078e026187ce5382c54a (patch)
tree11fe04136837cebfa2affbaf90021362c1bf7eeb
parent519e4381a0339b638b5fff5141bff31c0f59ffb0 (diff)
Resolves: fdo#79392 don't access after last row, when last row is max last row
Change-Id: I06749af90bed6a43f3fb6b3b5ceb61d5fbbc7c02 (cherry picked from commit a35d92197d850527bd294eb6197b5bf83109d5be) Reviewed-on: https://gerrit.libreoffice.org/9546 Reviewed-by: Kohei Yoshida <libreoffice@kohei.us> Tested-by: Kohei Yoshida <libreoffice@kohei.us>
-rw-r--r--sc/source/core/data/column3.cxx23
1 files changed, 13 insertions, 10 deletions
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index c7b157e8dc70..c311e37cab24 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -236,19 +236,22 @@ void ScColumn::DeleteRow( SCROW nStartRow, SCSIZE nSize )
// Check if there are any cells below the end row that will get shifted.
bool bShiftCells = false;
- aPos = maCells.position(itCell, nEndRow+1);
- itCell = aPos.first;
- if (itCell->type == sc::element_type_empty)
+ if (nEndRow < MAXROWCOUNT-1) //only makes sense to do this if there *is* a row after the end row
{
- // This block is empty. See if there is any block that follows.
- sc::CellStoreType::iterator itTest = itCell;
- ++itTest;
- if (itTest != maCells.end())
- // Non-empty block follows -> cells that will get shifted.
+ aPos = maCells.position(itCell, nEndRow+1);
+ itCell = aPos.first;
+ if (itCell->type == sc::element_type_empty)
+ {
+ // This block is empty. See if there is any block that follows.
+ sc::CellStoreType::iterator itTest = itCell;
+ ++itTest;
+ if (itTest != maCells.end())
+ // Non-empty block follows -> cells that will get shifted.
+ bShiftCells = true;
+ }
+ else
bShiftCells = true;
}
- else
- bShiftCells = true;
sc::SingleColumnSpanSet aNonEmptySpans;
if (bShiftCells)