diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2024-02-08 11:53:43 +0000 |
---|---|---|
committer | Caolán McNamara <caolan.mcnamara@collabora.com> | 2024-02-09 12:37:44 +0100 |
commit | ba81230114cfcd7b61ccfb7cb522d2d2630e375c (patch) | |
tree | b6a6df206e823b81de7cf1116b795f93bf435045 /sc | |
parent | 9de81ad9460e3fdf7733d5ba740f08894ce4b1a7 (diff) |
calc null-deref
probably seen after a sheet was deleted
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f259a642520]
/opt/collaboraoffice/program/../program/libsclo.so(+0x5b3db8)[0x7f25873b3db8]
/opt/collaboraoffice/program/../program/libsclo.so(+0x4964a1)[0x7f25872964a1]
this looks most likely:
00000000005b3db0 ScTable::ContainsNotesInRange(ScRange const&) const
0000000000496440 ScDocument::ContainsNotesInRange(ScRangeList const&) const
Change-Id: Ib019fe8abc18538eee7096e1fe5589e83e4849da
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163136
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 1fd89488d282cad8386af12064876f8ba0ac2956)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163145
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/data/document.cxx | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index ff6d77b432f7..15bb28fe61f1 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -6896,6 +6896,8 @@ void ScDocument::GetNotesInRange( const ScRangeList& rRangeList, std::vector<sc: const ScRange & rRange = rRangeList[i]; for( SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab ) { + if (!maTabs[nTab]) + continue; maTabs[nTab]->GetNotesInRange( rRange, rNotes ); } } @@ -6914,6 +6916,8 @@ bool ScDocument::ContainsNotesInRange( const ScRangeList& rRangeList ) const const ScRange & rRange = rRangeList[i]; for( SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab ) { + if (!maTabs[nTab]) + continue; bool bContainsNote = maTabs[nTab]->ContainsNotesInRange( rRange ); if(bContainsNote) return true; |