From d02e708e7500f42e28545f6e3ca809e8e33a7118 Mon Sep 17 00:00:00 2001 From: mwganson Date: Tue, 14 Sep 2021 15:15:59 -0500 Subject: [PATCH] [Spreadsheet] Prevent infinite loop when copy/paste of non-rectangular selection --- src/Mod/Spreadsheet/App/PropertySheet.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Mod/Spreadsheet/App/PropertySheet.cpp b/src/Mod/Spreadsheet/App/PropertySheet.cpp index 7ae24ec849..c4798e74d1 100644 --- a/src/Mod/Spreadsheet/App/PropertySheet.cpp +++ b/src/Mod/Spreadsheet/App/PropertySheet.cpp @@ -391,14 +391,16 @@ void PropertySheet::pasteCells(XMLReader &reader, const CellAddress &addr) { roffset = addr.row() - from.row(); coffset = addr.col() - from.col(); }else - range.next(); + if (!range.next()) + break; while(src!=*range) { CellAddress dst(*range); dst.setRow(dst.row()+roffset); dst.setCol(dst.col()+coffset); owner->clear(dst); owner->cellUpdated(dst); - range.next(); + if (!range.next()) + break; } CellAddress dst(src.row()+roffset, src.col()+coffset); auto cell = owner->getNewCell(dst);