diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2024-12-05 12:56:34 +0000 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2024-12-18 12:38:48 +0100 |
commit | 26f130d79361dcb42a708826db0baa6430c92c2b (patch) | |
tree | ec57a2aa5aea524c050ba7337bd98e119ccc2d0f | |
parent | 5906c2c7017f7063b91d45ff54acf9a11296dc47 (diff) |
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/+/177871
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r-- | sw/source/filter/ww8/ww8par.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 624fdc2f9b6d..cc50f8d76c17 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()) |