filter/source/msfilter/dffpropset.cxx     |   11 +++++++++++
 sw/qa/extras/ww8import/data/tdf130262.doc |binary
 sw/qa/extras/ww8import/ww8import.cxx      |    5 +++++
 3 files changed, 16 insertions(+)

New commits:
commit 6e5444959ec914f6d0979aa1e6d4d8a462d79891
Author:     Patrick Jaap <patrick.j...@tu-dresden.de>
AuthorDate: Thu Feb 6 18:33:19 2020 +0100
Commit:     Patrick Jaap <patrick.j...@tu-dresden.de>
CommitDate: Tue Feb 11 15:29:27 2020 +0100

    tdf#130262 ignore negative wrap distance values in doc prop import
    
    Change-Id: I2c06b12c958dfde09adcc2ae4c59532ffde6b6fe
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88127
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>
    (cherry picked from commit 8cbd7f59bb99282c4bcb60639da1263c8eb3a5e3)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88391
    Reviewed-by: Patrick Jaap <patrick.j...@tu-dresden.de>

diff --git a/filter/source/msfilter/dffpropset.cxx 
b/filter/source/msfilter/dffpropset.cxx
index 5b0b1194ae06..e5803046b4e4 100644
--- a/filter/source/msfilter/dffpropset.cxx
+++ b/filter/source/msfilter/dffpropset.cxx
@@ -1217,6 +1217,17 @@ void DffPropSet::ReadPropSet( SvStream& rIn, bool 
bSetUninitializedOnly )
             }
             if ( bSetProperty )
             {
+                // tdf#130262: ignore negative values for distances (maybe 
this list needs to be extended)
+                // LO does not allow negative values but [MS-ODRAW] does not 
forbid them
+                if (    nRecType == DFF_Prop_dxWrapDistLeft || nRecType == 
DFF_Prop_dxWrapDistRight
+                     || nRecType == DFF_Prop_dyWrapDistTop  || nRecType == 
DFF_Prop_dyWrapDistBottom )
+                {
+                    if ( static_cast<sal_Int32>(nContent) < 0 )
+                    {
+                        break;
+                    }
+                }
+
                 mpPropSetEntries[ nRecType ].nContent = nContent;
                 mpPropSetEntries[ nRecType ].aFlags = aPropFlag;
             }
diff --git a/sw/qa/extras/ww8import/data/tdf130262.doc 
b/sw/qa/extras/ww8import/data/tdf130262.doc
new file mode 100644
index 000000000000..fb60beacd79d
Binary files /dev/null and b/sw/qa/extras/ww8import/data/tdf130262.doc differ
diff --git a/sw/qa/extras/ww8import/ww8import.cxx 
b/sw/qa/extras/ww8import/ww8import.cxx
index c67f2c9385b0..468cacfd0967 100644
--- a/sw/qa/extras/ww8import/ww8import.cxx
+++ b/sw/qa/extras/ww8import/ww8import.cxx
@@ -365,6 +365,11 @@ DECLARE_WW8IMPORT_TEST(testTdf110987, "tdf110987")
     CPPUNIT_ASSERT(sFilterName != "MS Word 97 Vorlage");
 }
 
+DECLARE_WW8IMPORT_TEST(testTdf130262, "tdf130262.doc")
+{
+    // We had an infinite layout loop
+}
+
 // tests should only be added to ww8IMPORT *if* they fail round-tripping in 
ww8EXPORT
 
 CPPUNIT_PLUGIN_IMPLEMENT();
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to