summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2021-03-24 15:38:59 +0100
committerJan Holesovsky <kendy@collabora.com>2021-03-31 10:43:22 +0200
commit41b66bb6701cc8de67b1dd0d72a10f6b92372f30 (patch)
treed35195ebe1a2704c5784181247d74db5cc1d1cb7
parentd0c90bb1124a4a9f8335bcf8d02cd01ad13c8356 (diff)
Avoid infinite loop in AddPixelsWhile when removing Sheet
When 2 sessions in online were used: A was in chart editing mode in the last sheet B removed last sheet infinite loop occured as GetRowHeight returned 0 due to invalid tab number. Change-Id: If5c4ba583dfb1154ff44e0bf651a098fa78bafda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113044 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r--sc/source/ui/view/viewdata.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index a1ff8bc20051..b1470ad68b44 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -4044,7 +4044,12 @@ void ScViewData::AddPixelsWhile( long & rScrY, long nEndPixels, SCROW & rPosY,
if (nHeightEndRow > nEndRow)
nHeightEndRow = nEndRow;
if (!nHeight)
- nRow = nHeightEndRow + 1;
+ {
+ if (ValidTab(nTabNo) && nTabNo <= pDoc->GetMaxTableNumber())
+ nRow = nHeightEndRow + 1;
+ else
+ break;
+ }
else
{
SCROW nRows = nHeightEndRow - nRow + 1;