tools/source/stream/stream.cxx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
New commits: commit bcdaaf62d41728eb757ff2b9cb95c2df2791e2f4 Author: Caolán McNamara <caol...@redhat.com> Date: Fri Feb 16 09:20:12 2018 +0000 Resolves: tdf#115750 SvStream::WriteStream was broken and didn't stop copying at the size limit arg Change-Id: I8f1be0310160f5158d2f64c62d6b2c09c0157930 Reviewed-on: https://gerrit.libreoffice.org/49838 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/tools/source/stream/stream.cxx b/tools/source/stream/stream.cxx index 3a9f767880dd..5d6d3e58336b 100644 --- a/tools/source/stream/stream.cxx +++ b/tools/source/stream/stream.cxx @@ -1186,13 +1186,12 @@ sal_uInt64 SvStream::WriteStream( SvStream& rStream, sal_uInt64 nSize ) sal_uInt32 nCount; sal_uInt64 nWriteSize = nSize; - do { - if ( nSize >= nCurBufLen ) - nWriteSize -= nCurBufLen; - else - nCurBufLen = nWriteSize; - nCount = rStream.ReadBytes( pBuf.get(), nCurBufLen ); + do + { + nCurBufLen = std::min<sal_uInt64>(nCurBufLen, nWriteSize); + nCount = rStream.ReadBytes(pBuf.get(), nCurBufLen); WriteBytes( pBuf.get(), nCount ); + nWriteSize -= nCount; } while( nWriteSize && nCount == nCurBufLen ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits