diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-10-02 14:43:53 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-10-02 21:18:27 +0200 |
commit | 098ca4e0f1e09d10cbd038ffdec75bbc9c6d133d (patch) | |
tree | e3b05fc409c9f83e90f85c221ac6ce880f1055ed /sw/source/filter | |
parent | d94aa8bd603bec2027f6eed6ac63d8c1cc40e054 (diff) |
crashtesting: an odd number of bytes for RTL_TEXTENCODING_UCS2 encoding
seen with id:000316,src:000190+000204,op:splice,rep:32.doc
Change-Id: Ia4eb13ed617828f0d35bed26651a7b9e9a4b6056
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103860
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw/source/filter')
-rw-r--r-- | sw/source/filter/ascii/parasc.cxx | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sw/source/filter/ascii/parasc.cxx b/sw/source/filter/ascii/parasc.cxx index a2d7bbe30508..73536d36213e 100644 --- a/sw/source/filter/ascii/parasc.cxx +++ b/sw/source/filter/ascii/parasc.cxx @@ -348,12 +348,13 @@ ErrCode SwASCIIParser::ReadChars() else { pStt = pLastStt = reinterpret_cast<sal_Unicode*>(pArr.get()); - pEnd = reinterpret_cast<sal_Unicode*>(pArr.get() + lGCount); + auto nChars = lGCount / 2; + pEnd = pStt + nChars; if( bSwapUnicode ) { char* pF = pArr.get(), *pN = pArr.get() + 1; - for( sal_uLong n = 0; n < lGCount; n += 2, pF += 2, pN += 2 ) + for( sal_uLong n = 0; n < nChars; ++n, pF += 2, pN += 2 ) { char c = *pF; *pF = *pN; |