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

Reply via email to