editeng/source/editeng/impedit5.cxx |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

New commits:
commit 417f681eb69a61fa1876a2c96a1284a16f72abc1
Author:     Xisco Fauli <[email protected]>
AuthorDate: Fri Aug 25 14:22:43 2023 +0200
Commit:     Xisco Fauli <[email protected]>
CommitDate: Fri Sep 1 10:10:33 2023 +0200

    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 <[email protected]>
    (cherry picked from commit 8bb505d3e16deed2c7bb5636cfd765013ec23965)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156130
    Reviewed-by: Xisco Fauli <[email protected]>

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 )
         {

Reply via email to