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