From f22964e0e622af1168e241f933e5cf98e093ec2b Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Wed, 14 Jan 2015 23:01:41 +0100 Subject: [PATCH] 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 --- sw/qa/extras/ooxmlimport/data/rhbz1180114.docx | Bin 0 -> 3435 bytes 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(-) create mode 100644 sw/qa/extras/ooxmlimport/data/rhbz1180114.docx diff --git a/sw/qa/extras/ooxmlimport/data/rhbz1180114.docx b/sw/qa/extras/ooxmlimport/data/rhbz1180114.docx new file mode 100644 index 0000000000000000000000000000000000000000..23009ebbdc827c0d23fb9bac24b481548110f277 GIT binary patch literal 3435 zcmZ`+c{o&UAD*#~eJiprgUK$6EZO%aLxapDSu?T^S+nmUJ41FQLKG7wQPz?rWM@Q* zEEAG7eWR}TQr`DF=Q_{x&$*xL`Q7J!?%#c2hNNVy000#g0OB2_npN3OJp}*&v`7E| z8sco_Y441dk~|zMQ>F|^)oCLMd#swPxG^)vWt;wL6avO|u~sskBaeP-iF0)G(Q2|0yc}#KX>aPIF)W>) z;>z?CGkV$8W)>!*$!c^zU`S>IHh8`fIWvp?aD7Zt(AdCG z%lxOloOxjDbDf%P?^&a4)99ye3wR*xFBZhWcT!k@06;g91!f`(K5m|NQVwpeUT|w0 zXM0Is7w1Y7oNKEz?d0Bxu^D>zbk1aIqi?+UqkBAuE?&dB0(Pe{Q{T46Va+k?sx0+ntcMyX}Mgb_r+mu5ihx zMc#Wh?So;2*F6lyVl`Q6Iuz+HT$qBAEq&=7qmC_VG!uZPuobFvTod;fx1;c?ZO}_- z>t!Fsy_aSwKgso>>y+3-ll`09zoq^#oo7&!f|(|gO5F|i+Rk1v-@B31TL)F}%u`P|my=mVAM&5BZc(m-jd zx?b-a@afwUTcvItsR*5|VEljyY>n=33S)kx+0+xMOCr+9^$&%=)nw;p>+NFi>UGHD zZ)GL*P`{F9j3C^OtMd z-vv3(kf6I#2dD6y+=!r*ZP%|HDu!So%Rp=+=~2b^v64DtB!vU$ExN59q8g{BW=|fs*9Dg_2Tu-zd zb!rkxO?+!LlZx8wI%IbXB#u5?xk4zXLo6`9$lkHOWMRE765@iJSPMST6+%v<;+H@d z5ggYi5$04vH?6cISFspvLHgybMb>%t&qMu#>GRUb&?dd%R6cj^?TBy7tu&COhlxH9 zw9ih@S**{n@|InU+2j+j7NMe~?&K}+>7}h7xoBoVwrTj9E>pFvcZa7;{WEwV;%zLA zVfL@H%(ghDZdU?q(Y!mm8fTJ6M7;xIigw7Z*q z2}5KD!bOJNvY#>&?EqbtyUCP(ktz@cs1l!FR8v>X^ZGC7a3V{$c6+sCAF#L0h&|ZGd_UKi8{cg08JmHgNG_Yy=uD9&EyNJD)G(}U= zGLB7E-JV}BzHC_%)DvZtYn!L@6Fm8*QlDX+heH9rj6NuACRwfiHOd!0QN6s5K^$$DO z=!{Hd`D1WV%CwMqWgEl10^pJ|h^PN+-Q�ohh==reUbB|&Z_!W%Wy$O~IFi(oor7cJa&ZYEsbJpAE5X-!2HNxn33jfO(X((QD&9Ibb*)YyOz| z{!nc2aD`Z-wac1cUx3wkRuJK>2ij}lH1O4OjD_D1*)3#K;Np>jfST~$oS!xYeH+sc-hpy-*veHLi@z6}%NUOx=z&$^c%DqkukYcupKj^vR!2s4D5}L)%-v$5m}rRB%t)Mx z9tHDsb4N>AySpE%Dz{IDCS014e5R>cYR-fMIdd?)1{-X6#m()9;B&eaCq6j8HtqejxV}EB{_OZwd|018=+lxn{|Q$29nWiNZG zZe)iXdG1d6lz&Tn?a7z)r`x}w04aY>OaKBksVWlQ5i9M86eMIL(5nT&HI z>&%tQQ_PZ%Y+r!)7+l6$DQ~5(TuXEzz+-qr>7|FeEL_$q62~+fPtZh8|G56h)5n3wL+25Sg7|&@9YK%dk0-7pygspm{KEgA{B^hz z59#j`{+(ple=S7Z0-!cjiKvqQ$Tj4@bIq|#b9{rxo7vF@?-C=^uVs%~+i~!5(>elw zB=*MR7Iqwc+#!z8byR<#|M83C@Z*Q%2)+jT&m#jfB&RrhiHdliAhNG^_%8+cA4jT| AG5`Po literal 0 HcmV?d00001 diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 5bec69c..7e8c62d 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -757,6 +757,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 cb45bb4..461c138 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -2213,6 +2213,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 57f491f..e97c133 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -4836,9 +4836,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 fc671af..f1c721f 100644 --- a/writerfilter/source/ooxml/model.xml +++ b/writerfilter/source/ooxml/model.xml @@ -17281,6 +17281,22 @@ + + + + + + + + + + + + + + + + -- 2.1.0