[Libreoffice-commits] core.git: sw/qa writerfilter/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jan 28 13:16:37 UTC 2020
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 eca00082c78fddf79f247057227404738be8806c
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Tue Jan 28 13:22:56 2020 +0300
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Tue Jan 28 14:16:04 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.kaganski at collabora.com>
Tested-by: Mike Kaganski <mike.kaganski at 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 2983be1076e1..593947fd77ab 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
@@ -531,6 +531,11 @@ DECLARE_OOXMLIMPORT_TEST(testTdf103345, "numbering-circle.docx")
}
}
+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 24f769338c94..ee9e1fb55d62 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4516,6 +4516,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);
More information about the Libreoffice-commits
mailing list