diff options
-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 0ed8fcac0ca7..d3118ce913c7 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -217,6 +217,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 @@ -348,6 +357,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()) |