diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-08-25 14:22:43 +0200 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-09-01 10:10:33 +0200 |
commit | 417f681eb69a61fa1876a2c96a1284a16f72abc1 (patch) | |
tree | 3117f88fb39bbc4d37d24e3c4439d4412adfa5b6 /editeng | |
parent | 3159296b3b033f2355a96b024c6834ad51321b75 (diff) |
editeng: fix crash in EditDoc::FindAttribs
check pNode before calling EditDoc::FindAttribs.
This is the only place where EditDoc::FindAttribs is called from
See https://crashreport.libreoffice.org/stats/signature/EditDoc::FindAttribs(ContentNode%20*,long,long,SfxItemSet%20&)
Change-Id: I3ed0724b1113965c09c66413987bb85777ec9a16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156097
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit 8bb505d3e16deed2c7bb5636cfd765013ec23965)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156130
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/editeng/impedit5.cxx | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/editeng/source/editeng/impedit5.cxx b/editeng/source/editeng/impedit5.cxx index 3a87c4b5bfb7..27656ea3dc66 100644 --- a/editeng/source/editeng/impedit5.cxx +++ b/editeng/source/editeng/impedit5.cxx @@ -316,7 +316,7 @@ SfxItemSet ImpEditEngine::GetAttribs( EditSelection aSel, EditEngineAttribs nOnl for ( sal_Int32 nNode = nStartNode; nNode <= nEndNode; nNode++ ) { ContentNode* pNode = aEditDoc.GetObject( nNode ); - DBG_ASSERT( aEditDoc.GetObject( nNode ), "Node not found: GetAttrib" ); + assert( pNode && "Node not found: GetAttrib" ); const sal_Int32 nStartPos = nNode==nStartNode ? aSel.Min().GetIndex() : 0; const sal_Int32 nEndPos = nNode==nEndNode ? aSel.Max().GetIndex() : pNode->Len(); // Can also be == nStart! @@ -327,7 +327,8 @@ SfxItemSet ImpEditEngine::GetAttribs( EditSelection aSel, EditEngineAttribs nOnl // 2) Examine Style and paragraph attributes only when OFF... // First the very hard formatting... - EditDoc::FindAttribs( pNode, nStartPos, nEndPos, aCurSet ); + if (pNode) + EditDoc::FindAttribs( pNode, nStartPos, nEndPos, aCurSet ); if( nOnlyHardAttrib != EditEngineAttribs::OnlyHard ) { |