-
Stephan Bergmann yazdı
The original code of 7b0b5cdf "initial import" read + long nLen = ( (nNextPieceCp < nBehindTextCp) + ? nNextPieceCp + : nBehindTextCp + ) + - nAktStartCp; + + if( 0 >= nLen ) break; + + if( nLen > USHRT_MAX - 1 ) + nLen = USHRT_MAX - 1; + + if( bIsUnicode ) + rStr.Append( WW8Read_xstz( rStrm, (USHORT)nLen, FALSE ) ); + else + { + ByteString aByteStr; // Alloc methode automatically sets Zero at the end + sal_Char* pByteData = aByteStr.AllocBuffer( nLen ); + + sal_Size nWasRead = rStrm.Read( pByteData, nLen ); + if( nWasRead != nLen ) + aByteStr.ReleaseBufferAccess( nWasRead ); + + rStr += String( aByteStr, eEnc ); + } + nTotalRead += nLen; + nAktStartCp += nLen; + if( nTotalRead != rStr.Len() ) break; casting nLen to USHORT in the call to WW8Read_xstz, while the current code looks like it should work fine for larger nLen. Change-Id: Ie3a0d654ef45421cbbe8e823259e8dfd27bd27e2 Reviewed-on: https://gerrit.libreoffice.org/48437Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Stephan Bergmann <sbergman@redhat.com>
da67b0be