diff options
author | Eike Rathke <erack@redhat.com> | 2017-06-21 17:42:42 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-06-21 17:43:25 +0200 |
commit | 87cbbdc98d78c3c15f7161de6fec93d8680ee1de (patch) | |
tree | f0dd0c1af9a5199ec4ad46743a4751ee494c2291 /sc | |
parent | 7382bfda2b2c7b4382aec072c6134a2c0d5cd6c6 (diff) |
Resolves: tdf#108654 check nTabNo against maTabData size
ScViewData::DeleteTab() and DeleteTabs() never did that and worked by accident
for which commit 73dec49802ef8fc42c5719efaa42a33cde68e569 removed the
grounding..
Change-Id: I95460cd017d558c073df7891551d0251009dc1d4
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/view/viewdata.cxx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 63257497cb7c..ceffc1973dca 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -545,6 +545,11 @@ void ScViewData::DeleteTab( SCTAB nTab ) delete maTabData.at(nTab); maTabData.erase(maTabData.begin() + nTab); + if (static_cast<size_t>(nTabNo) >= maTabData.size()) + { + EnsureTabDataSize(1); + nTabNo = maTabData.size() - 1; + } UpdateCurrentTab(); mpMarkData->DeleteTab( nTab ); } @@ -558,6 +563,11 @@ void ScViewData::DeleteTabs( SCTAB nTab, SCTAB nSheets ) } maTabData.erase(maTabData.begin() + nTab, maTabData.begin()+ nTab+nSheets); + if (static_cast<size_t>(nTabNo) >= maTabData.size()) + { + EnsureTabDataSize(1); + nTabNo = maTabData.size() - 1; + } UpdateCurrentTab(); } |