writerfilter/source/dmapper/NumberingManager.cxx |   27 ++++++++++++++---------
 1 file changed, 17 insertions(+), 10 deletions(-)

New commits:
commit 2c11d73ccce3e705c88c877c167be0acaef5b350
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Aug 28 21:14:30 2020 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Sat Aug 29 11:19:45 2020 +0200

    ofz#25268 Null-dereference
    
    Change-Id: I1b5a738bb1dfccb64b8d0520ffa4ba2cbff00026
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101583
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/writerfilter/source/dmapper/NumberingManager.cxx 
b/writerfilter/source/dmapper/NumberingManager.cxx
index 5735542cba16..4e66b5aff0ea 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -525,7 +525,9 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
             auto aLvlProps = comphelper::sequenceToContainer< 
std::vector<beans::PropertyValue> >(aProps[nLevel]);
 
             // Get the char style
-            uno::Sequence< beans::PropertyValue > aAbsCharStyleProps = 
pAbsLevel->GetCharStyleProperties( );
+            auto aAbsCharStyleProps = pAbsLevel
+                                    ? pAbsLevel->GetCharStyleProperties()
+                                    : uno::Sequence<beans::PropertyValue>();
             if ( pLevel )
             {
                 uno::Sequence< beans::PropertyValue >& rAbsCharStyleProps = 
aAbsCharStyleProps;
@@ -548,7 +550,9 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
 
             // Get the prefix / suffix / Parent numbering
             // and add them to the level properties
-            OUString sText = pAbsLevel->GetBulletChar( );
+            OUString sText = pAbsLevel
+                           ? pAbsLevel->GetBulletChar()
+                           : OUString();
             // Inherit <w:lvlText> from the abstract level in case the 
override would be empty.
             if (pLevel && !pLevel->GetBulletChar().isEmpty())
                 sText = pLevel->GetBulletChar( );
@@ -568,7 +572,7 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
             m_xNumRules->replaceByIndex(nLevel, 
uno::makeAny(comphelper::containerToSequence(aLvlProps)));
 
             // Handle the outline level here
-            if ( pAbsLevel->isOutlineNumbering())
+            if (pAbsLevel && pAbsLevel->isOutlineNumbering())
             {
                 uno::Reference< text::XChapterNumberingSupplier > xOutlines (
                     xFactory, uno::UNO_QUERY_THROW );
@@ -581,14 +585,17 @@ void ListDef::CreateNumberingRules( DomainMapper& 
rDMapper,
                 xOutlineRules->replaceByIndex(nLevel, 
uno::makeAny(comphelper::containerToSequence(aLvlProps)));
             }
 
-            // first level without default outline paragraph style
-            const tools::SvRef< StyleSheetEntry >& aParaStyle = 
pAbsLevel->GetParaStyle();
-            if ( WW_OUTLINE_MAX + 1 == m_nDefaultParentLevels && ( !aParaStyle 
||
-                aParaStyle->sConvertedStyleName.getLength() != 
RTL_CONSTASCII_LENGTH( "Heading 1" ) ||
-                !aParaStyle->sConvertedStyleName.startsWith("Heading ") ||
-                aParaStyle->sConvertedStyleName[ RTL_CONSTASCII_LENGTH( 
"Heading " ) ] - u'1' != nLevel ) )
+            if (pAbsLevel)
             {
-                m_nDefaultParentLevels = nLevel;
+                // first level without default outline paragraph style
+                const tools::SvRef< StyleSheetEntry >& aParaStyle = 
pAbsLevel->GetParaStyle();
+                if ( WW_OUTLINE_MAX + 1 == m_nDefaultParentLevels && ( 
!aParaStyle ||
+                    aParaStyle->sConvertedStyleName.getLength() != 
RTL_CONSTASCII_LENGTH( "Heading 1" ) ||
+                    !aParaStyle->sConvertedStyleName.startsWith("Heading ") ||
+                    aParaStyle->sConvertedStyleName[ RTL_CONSTASCII_LENGTH( 
"Heading " ) ] - u'1' != nLevel ) )
+                {
+                    m_nDefaultParentLevels = nLevel;
+                }
             }
 
             nLevel++;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to