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

Michael Stahl mstahl at redhat.com
Fri Jan 16 01:14:43 PST 2015


 sw/qa/extras/ooxmlimport/data/rhbz1180114.docx    |binary
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx          |    5 +++++
 writerfilter/source/dmapper/DomainMapper.cxx      |    6 ++++++
 writerfilter/source/dmapper/DomainMapper_Impl.cxx |    3 ++-
 writerfilter/source/ooxml/model.xml               |   16 ++++++++++++++++
 5 files changed, 29 insertions(+), 1 deletion(-)

New commits:
commit 7a728f882b5a66d2184dcc2fbcf291b9dbba88fe
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Jan 14 23:01:41 2015 +0100

    rhbz#1180114: writerfilter: don't crash on w:customXmlDelRangeStart etc.
    
    We can't do anything sensible with these CustomXML elements but now we
    have to handle them because.
    
    (regression from 9dbf817fe5c5253fba0831aefa17575ae0ba3af1)
    
    Change-Id: If4247890ff9961a77434587802670d28608a7922
    (cherry picked from commit f22964e0e622af1168e241f933e5cf98e093ec2b)
    Reviewed-on: https://gerrit.libreoffice.org/13914
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/qa/extras/ooxmlimport/data/rhbz1180114.docx b/sw/qa/extras/ooxmlimport/data/rhbz1180114.docx
new file mode 100644
index 0000000..23009eb
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/rhbz1180114.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index 0082009..44876b9 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -728,6 +728,11 @@ DECLARE_OOXMLIMPORT_TEST(testN779834, "n779834.docx")
     // This document simply crashed the importer.
 }
 
+DECLARE_OOXMLIMPORT_TEST(testRHBZ1180114, "rhbz1180114.docx")
+{
+    // This document simply crashed the importer.
+}
+
 DECLARE_OOXMLIMPORT_TEST(testN779627, "n779627.docx")
 {
     /*
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 8bc3320..44efb59 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2164,6 +2164,12 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext )
     case NS_ooxml::LN_CT_PPr_pPrChange:
     case NS_ooxml::LN_trackchange:
     case NS_ooxml::LN_EG_RPrContent_rPrChange:
+    case NS_ooxml::LN_EG_RangeMarkupElements_customXmlDelRangeStart:
+    case NS_ooxml::LN_EG_RangeMarkupElements_customXmlDelRangeEnd:
+    case NS_ooxml::LN_EG_RangeMarkupElements_customXmlMoveFromRangeStart:
+    case NS_ooxml::LN_EG_RangeMarkupElements_customXmlMoveFromRangeEnd:
+    case NS_ooxml::LN_EG_RangeMarkupElements_customXmlMoveToRangeStart:
+    case NS_ooxml::LN_EG_RangeMarkupElements_customXmlMoveToRangeEnd:
     {
         HandleRedline( rSprm );
     }
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 3779aa3..e2eaeec 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4623,9 +4623,10 @@ void DomainMapper_Impl::SetCurrentRedlineId( sal_Int32 sId )
     {
         // This should be an assert, but somebody had the smart idea to reuse this function also for comments and whatnot,
         // and in some cases the id is actually not handled, which may be in fact a bug.
-        SAL_WARN( "writerfilter", !m_currentRedline.get());
         if( m_currentRedline.get())
             m_currentRedline->m_nId = sId;
+        else
+            SAL_INFO("writerfilter.dmapper", "no current redline");
     }
 }
 
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index 1e427b1..69ac296 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -24200,6 +24200,22 @@
     <resource name="CT_TrackChange" resource="Properties" tag="redline">
       <attribute name="author" tokenid="ooxml:CT_TrackChange_author"/>
       <attribute name="date" tokenid="ooxml:CT_TrackChange_date"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlInsRangeStart" action="sendPropertiesWithId" sendtokenid="ooxml:EG_RangeMarkupElements_customXmlInsRangeStart"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlInsRangeStart" action="clearProps"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlInsRangeEnd" action="sendPropertiesWithId" sendtokenid="ooxml:EG_RangeMarkupElements_customXmlInsRangeEnd"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlInsRangeEnd" action="clearProps"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlDelRangeStart" action="sendPropertiesWithId" sendtokenid="ooxml:EG_RangeMarkupElements_customXmlDelRangeStart"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlDelRangeStart" action="clearProps"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlDelRangeEnd" action="sendPropertiesWithId" sendtokenid="ooxml:EG_RangeMarkupElements_customXmlDelRangeEnd"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlDelRangeEnd" action="clearProps"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlMoveFromRangeStart" action="sendPropertiesWithId" sendtokenid="ooxml:EG_RangeMarkupElements_customXmlMoveFromRangeStart"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlMoveFromRangeStart" action="clearProps"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlMoveFromRangeEnd" action="sendPropertiesWithId" sendtokenid="ooxml:EG_RangeMarkupElements_customXmlMoveFromRangeEnd"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlMoveFromRangeEnd" action="clearProps"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlMoveToRangeStart" action="sendPropertiesWithId" sendtokenid="ooxml:EG_RangeMarkupElements_customXmlMoveToRangeStart"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlMoveToRangeStart" action="clearProps"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlMoveToRangeEnd" action="sendPropertiesWithId" sendtokenid="ooxml:EG_RangeMarkupElements_customXmlMoveToRangeEnd"/>
+      <action name="end" tokenid="ooxml:EG_RangeMarkupElements_customXmlMoveToRangeEnd" action="clearProps"/>
     </resource>
     <resource name="CT_CellMergeTrackChange" resource="Properties" tag="redline">
       <attribute name="vMerge" tokenid="ooxml:CT_CellMergeTrackChange_vMerge"/>


More information about the Libreoffice-commits mailing list