sw/qa/extras/ooxmlimport/data/tdf130214.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport2.cxx | 5 +++++ writerfilter/source/dmapper/DomainMapper_Impl.cxx | 6 ++++++ 3 files changed, 11 insertions(+)
New commits: commit 8289795cfe2cbc22571be6408ec0018808b18213 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Tue Jan 28 13:22:56 2020 +0300 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Tue Feb 4 11:01:14 2020 +0100 tdf#130214: workaround invalid state resulting from error on import Obviously the real error is somewhere else, which results in tdf#126435, and produces unexpected state with missing text append context on stack. This is just a hack to avoid crash. Change-Id: I420ac3b74f5efb9688dc764ac2ad0dcc974ba0e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87595 Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Tested-by: Mike Kaganski <mike.kagan...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87952 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/sw/qa/extras/ooxmlimport/data/tdf130214.docx b/sw/qa/extras/ooxmlimport/data/tdf130214.docx new file mode 100644 index 000000000000..4344e1c6e44e Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf130214.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx index 31e40b3d062e..110231888dee 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx @@ -439,6 +439,11 @@ DECLARE_OOXMLIMPORT_TEST(testTdf126114, "tdf126114.docx") CPPUNIT_ASSERT_EQUAL(7, getLength()); } +DECLARE_OOXMLIMPORT_TEST(testTdf130214, "tdf130214.docx") +{ + // Currently this file imports with errors because of tdf#126435; it must not segfault on load +} + // tests should only be added to ooxmlIMPORT *if* they fail round-tripping in ooxmlEXPORT CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 04432a9cb63e..81f518af9c29 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -4138,6 +4138,12 @@ void DomainMapper_Impl::handleBibliography (const FieldContextPtr& pContext, const OUString & sTOCServiceName) { + if (m_aTextAppendStack.empty()) + { + // tdf#130214: a workaround to avoid crash on import errors + SAL_WARN("writerfilter.dmapper", "no text append stack"); + return; + } // Create section before setting m_bStartTOC and m_bStartBibliography: finishing paragraph // inside StartIndexSectionChecked could do the wrong thing otherwise const auto xTOC = StartIndexSectionChecked(sTOCServiceName); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits