From e4da2e5dfa9e462e0d9c23a1a60caf4b3ef2dc56 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Fri, 5 May 2017 22:05:46 +0200 Subject: tdf#104407 writerfilter: fix crash with null xRangeProperties The m_xStartingRange is null at this point for whatever reason, and the block immediately above this one already checks xRangeProperties, so let's just do the same here. (Also IsNewDoc(), where the logic between PageDescName and PageNumberOffset presumably shouldn't differ?). (started to crash with abaf6bde4ee91c628bd55a7ec2e876a5d0ecff6e as previously that code was unreachable in RTF import) Change-Id: I20539c3a753ecea357e556ea556c3c26983ce1d1 --- writerfilter/source/dmapper/PropertyMap.cxx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'writerfilter/source/dmapper/PropertyMap.cxx') diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index 44a8bf016252..8e308940e7e0 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -1377,16 +1377,18 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl ) } if ( xRangeProperties.is() && rDM_Impl.IsNewDoc() ) + { xRangeProperties->setPropertyValue( getPropertyName( PROP_PAGE_DESC_NAME ), uno::makeAny( m_bTitlePage ? m_sFirstPageStyleName : m_sFollowPageStyleName ) ); - if ( m_bPageNoRestart || m_nPageNumber >= 0 ) - { - sal_Int16 nPageNumber = m_nPageNumber >= 0 ? static_cast< sal_Int16 >(m_nPageNumber) : 1; - xRangeProperties->setPropertyValue( getPropertyName( PROP_PAGE_NUMBER_OFFSET ), - uno::makeAny( nPageNumber ) ); + if (m_bPageNoRestart || 0 <= m_nPageNumber) + { + sal_Int16 nPageNumber = m_nPageNumber >= 0 ? static_cast< sal_Int16 >(m_nPageNumber) : 1; + xRangeProperties->setPropertyValue(getPropertyName(PROP_PAGE_NUMBER_OFFSET), + uno::makeAny(nPageNumber)); + } } } } -- cgit v1.2.3