diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2021-03-24 15:38:59 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2021-03-31 10:43:22 +0200 |
commit | 41b66bb6701cc8de67b1dd0d72a10f6b92372f30 (patch) | |
tree | d35195ebe1a2704c5784181247d74db5cc1d1cb7 | |
parent | d0c90bb1124a4a9f8335bcf8d02cd01ad13c8356 (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.cxx | 7 |
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; |