[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - sw/qa writerfilter/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Tue Jan 28 22:44:10 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 a232c0a72b195975c1c77e7e70ab844cd6d3f65f
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Tue Jan 28 13:22:56 2020 +0300
Commit:     Xisco Faulí <xiscofauli at libreoffice.org>
CommitDate: Tue Jan 28 23:43:09 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>
    (cherry picked from commit eca00082c78fddf79f247057227404738be8806c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87634
    Tested-by: Jenkins
    Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>

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 d75a8c0dc4fe..636e0337ad81 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 4206b41ddaed..8128c800e834 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4426,6 +4426,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