diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-08-28 21:14:30 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-08-29 11:19:45 +0200 |
commit | 2c11d73ccce3e705c88c877c167be0acaef5b350 (patch) | |
tree | d2581a5b082f3e07dd9d5aa44e042dc90ad7aa87 /writerfilter | |
parent | d784e711c102f204552c3c816636da01b1085f61 (diff) |
ofz#25268 Null-dereference
Change-Id: I1b5a738bb1dfccb64b8d0520ffa4ba2cbff00026
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101583
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/NumberingManager.cxx | 27 |
1 files changed, 17 insertions, 10 deletions
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++; |