From 41b66bb6701cc8de67b1dd0d72a10f6b92372f30 Mon Sep 17 00:00:00 2001 From: Szymon Kłos Date: Wed, 24 Mar 2021 15:38:59 +0100 Subject: 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 Reviewed-by: Jan Holesovsky --- sc/source/ui/view/viewdata.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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; -- cgit