sw/source/filter/ww8/ww8par.cxx |   11 +++++++++++
 1 file changed, 11 insertions(+)

New commits:
commit ffee78c6839b6c305b124954ff9dc3cb411360fb
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Thu Dec 5 12:56:34 2024 +0000
Commit:     Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
CommitDate: Tue Dec 10 16:06:05 2024 +0100

    crashtesting: HLINK embedded null import from ooo98294-1.doc
    
    which causes problems on export to docx. Sanitize at the original
    import.
    
    Change-Id: I3b5521dac6a2b6926db6362d33500b11f0a69098
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177870
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Tested-by: Jenkins
    (cherry picked from commit 47a9360de91bb50c19a0d5f2e8408042931933ab)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177890
    Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
    Tested-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 138bbf26127b..2ed6ce9fd383 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -216,6 +216,15 @@ namespace
     }
 }
 
+// returns true if an embedded null was found
+static bool clipToFirstNull(OUString& rStr)
+{
+    sal_Int32 nEmbeddedNullIdx = rStr.indexOf(0);
+    if (nEmbeddedNullIdx != -1)
+        rStr = rStr.copy(0, nEmbeddedNullIdx);
+    return nEmbeddedNullIdx != -1;
+}
+
 void SwWW8ImplReader::ReadEmbeddedData(SvStream& rStrm, SwDocShell const * 
pDocShell, struct HyperLinksTable& hlStr)
 {
     // (0x01B8) HLINK
@@ -347,6 +356,8 @@ void SwWW8ImplReader::ReadEmbeddedData(SvStream& rStrm, 
SwDocShell const * pDocS
 
     if (xLongName)
     {
+        if (clipToFirstNull(*xLongName))
+            SAL_WARN("sw.ww8", "HLINK with embedded null, truncating to: " << 
*xLongName);
         if (xTextMark)
         {
             if (xLongName->isEmpty())

Reply via email to