sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx |   21 ++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

New commits:
commit 85f1e651e7af8aa9814ac069e860bb65376abb13
Author:     Miklos Vajna <[email protected]>
AuthorDate: Wed Nov 5 08:52:46 2025 +0100
Commit:     Caolán McNamara <[email protected]>
CommitDate: Wed Nov 5 14:03:13 2025 +0100

    sw writerfilter: fix crash in DomainMapper_Impl::PushProperties()
    
    Crashreport signature:
    
    > /opt/collaboraoffice/program/../program/libsw_writerfilterlo.so
    >       writerfilter::dmapper::ParagraphProperties::SetListId(int)
    >               
/home/collabora/jenkins/workspace/build_core_co-25.04_for_online_snapshot/sw/source/writerfilter/dmapper/PropertyMap.hxx:492
    > /opt/collaboraoffice/program/../program/libsw_writerfilterlo.so
    >       std::__uniq_ptr_impl<writerfilter::dmapper::DomainMapper_Impl, 
o3tl::default_delete<writerfilter::dmapper::DomainMapper_Impl> >::_M_ptr() const
    >               
/opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:191
    > /opt/collaboraoffice/program/../program/libsw_writerfilterlo.so
    >       writerfilter::ooxml::OOXMLFastContextHandler::startParagraphGroup()
    >               
/home/collabora/jenkins/workspace/build_core_co-25.04_for_online_snapshot/sw/source/writerfilter/ooxml/OOXMLFastContextHandler.cxx:432
    > /opt/collaboraoffice/program/../program/libsw_writerfilterlo.so
    >       
writerfilter::ooxml::OOXMLFactory_wml::startAction(writerfilter::ooxml::OOXMLFastContextHandler*)
    >               
/home/collabora/jenkins/workspace/build_core_co-25.04_for_online_snapshot/workdir/CustomTarget/sw/source/writerfilter/ooxml/OOXMLFactory_wml.cxx:7950
    
    Where gdb (on the coredump) says pParaContext was nullptr in
    writerfilter::dmapper::DomainMapper_Impl::PushProperties().
    
    Change-Id: I5729f95526b9080bcab1f65f5c3aea571d55c4d1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193442
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>

diff --git a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx 
b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
index beaf665024d4..76517ee98357 100644
--- a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
+++ b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
@@ -1304,15 +1304,18 @@ void    DomainMapper_Impl::PushProperties(ContextType 
eId)
         if (!IsFirstRun())
         {
             auto pParaContext = 
static_cast<ParagraphPropertyMap*>(GetTopContextOfType(eId).get());
-            pParaContext->props().SetListId(-1);
-            pParaContext->Erase(PROP_NUMBERING_RULES); // only true with 
column, not page break
-            pParaContext->Erase(PROP_NUMBERING_LEVEL);
-            pParaContext->Erase(PROP_NUMBERING_TYPE);
-            pParaContext->Erase(PROP_START_WITH);
-
-            pParaContext->Insert(PROP_PARA_TOP_MARGIN, 
uno::Any(sal_uInt32(0)));
-            pParaContext->Erase(PROP_PARA_TOP_MARGIN_BEFORE_AUTO_SPACING);
-            pParaContext->Insert(PROP_PARA_FIRST_LINE_INDENT, 
uno::Any(sal_uInt32(0)));
+            if (pParaContext)
+            {
+                pParaContext->props().SetListId(-1);
+                pParaContext->Erase(PROP_NUMBERING_RULES); // only true with 
column, not page break
+                pParaContext->Erase(PROP_NUMBERING_LEVEL);
+                pParaContext->Erase(PROP_NUMBERING_TYPE);
+                pParaContext->Erase(PROP_START_WITH);
+
+                pParaContext->Insert(PROP_PARA_TOP_MARGIN, 
uno::Any(sal_uInt32(0)));
+                pParaContext->Erase(PROP_PARA_TOP_MARGIN_BEFORE_AUTO_SPACING);
+                pParaContext->Insert(PROP_PARA_FIRST_LINE_INDENT, 
uno::Any(sal_uInt32(0)));
+            }
         }
 
         m_aPropertyStacks[eId].push( GetTopContextOfType(eId));

Reply via email to