sc/source/core/data/document.cxx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
New commits: commit ebf6a4ae1746002ede4b7920dad317015f802e32 Author: Matt K <matt...@gmail.com> AuthorDate: Sat Jan 13 17:30:59 2024 -0600 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Mon Jan 15 13:17:25 2024 +0100 tdf#151752 Fix crash when selecting unprotected cells and copy/pasting The problem is that the code attemps to index into maTabs when looping through clipboard ranges, but maTabs.size() can be 0 at that point thus resulting in a crash. The fix is to first check if maTabs.size() is greater than 0 before doing the looping. Change-Id: Ib2fc4c9f847f87f44a68ad6d73c2745d79b5caa5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162032 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> (cherry picked from commit 59927dedc31eb5d51b417a02ae927eb578b90bd6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162090 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> (cherry picked from commit 051d4d2ade01bf1de8fd2e4d384463fa8e9f35d8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162094 diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 6ddae7a04057..2381bb3b2b97 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -3262,12 +3262,16 @@ bool ScDocument::HasClipFilteredRows() if ( rClipRanges.empty() ) return false; - for ( size_t i = 0, n = rClipRanges.size(); i < n; ++i ) + if (maTabs.size() > 0) { - ScRange & rRange = rClipRanges[ i ]; - bool bAnswer = maTabs[nCountTab]->HasFilteredRows(rRange.aStart.Row(), rRange.aEnd.Row()); - if (bAnswer) - return true; + for (size_t i = 0, n = rClipRanges.size(); i < n; ++i) + { + ScRange& rRange = rClipRanges[i]; + bool bAnswer + = maTabs[nCountTab]->HasFilteredRows(rRange.aStart.Row(), rRange.aEnd.Row()); + if (bAnswer) + return true; + } } return false; }