]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
zstdseek_decompress: fix decompression with data left in input buffer
authorAzat Khuzhin <a3at.mail@gmail.com>
Sun, 16 Sep 2018 15:04:43 +0000 (18:04 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Sun, 16 Sep 2018 15:05:32 +0000 (18:05 +0300)
contrib/seekable_format/zstdseek_decompress.c

index 2b109b9d0c40ed90b8764d901a2a43495fd8fb4e..b4c48754ef87c8ad91e5d3810f0e25e932f76b40 100644 (file)
@@ -313,8 +313,8 @@ static size_t ZSTD_seekable_loadSeekTable(ZSTD_seekable* zs)
             /* compute cumulative positions */
             for (; idx < numFrames; idx++) {
                 if (pos + sizePerEntry > SEEKABLE_BUFF_SIZE) {
-                    U32 const toRead = MIN(remaining, SEEKABLE_BUFF_SIZE);
                     U32 const offset = SEEKABLE_BUFF_SIZE - pos;
+                    U32 const toRead = MIN(remaining, SEEKABLE_BUFF_SIZE - offset);
                     memmove(zs->inBuff, zs->inBuff + pos, offset); /* move any data we haven't read yet */
                     CHECK_IO(src.read(src.opaque, zs->inBuff+offset, toRead));
                     remaining -= toRead;