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

Caolán McNamara caolanm at redhat.com
Wed Sep 23 03:48:36 PDT 2015


 sw/qa/core/data/ww8/pass/hang-9.doc |binary
 sw/source/filter/ww8/ww8scan.cxx    |   12 ++++++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

New commits:
commit b477a8d5df518cd8c30a1a21e3ffccc8bac88084
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Sep 21 12:14:19 2015 +0100

    don't hang on busted subdocument offsets
    
    Change-Id: I5d1d18f864496ec98894703f0a22e211a9dd14a5
    (cherry picked from commit a2b90cd04733c2ec3b9cb3bb56d95f3298571ecc)
    Reviewed-on: https://gerrit.libreoffice.org/18748
    Reviewed-by: David Tardon <dtardon at redhat.com>
    Tested-by: David Tardon <dtardon at redhat.com>

diff --git a/sw/qa/core/data/ww8/pass/hang-9.doc b/sw/qa/core/data/ww8/pass/hang-9.doc
new file mode 100644
index 0000000..4e9e412
Binary files /dev/null and b/sw/qa/core/data/ww8/pass/hang-9.doc differ
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index c8afe52..2c2a46b 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -4431,11 +4431,15 @@ void WW8PLCFxDesc::ReduceByOffset()
         else
             nStartPos -= nCpOfs;
     }
-    if( nEndPos != WW8_CP_MAX )
+    if (nEndPos != WW8_CP_MAX)
     {
-        OSL_ENSURE(nCpOfs <= nEndPos,
-            "oh oh, so much for the subdocument piece theory");
-        nEndPos   -= nCpOfs;
+        if (nCpOfs > nEndPos)
+        {
+            SAL_WARN("sw.ww8", "broken subdocument piece entry");
+            nEndPos = WW8_CP_MAX;
+        }
+        else
+            nEndPos -= nCpOfs;
     }
 }
 


More information about the Libreoffice-commits mailing list