]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
execSequence copies up to 2*WILDCOPY_OVERLENGTH extra
authorSean Purcell <me@seanp.xyz>
Thu, 16 Feb 2017 20:05:40 +0000 (12:05 -0800)
committerSean Purcell <me@seanp.xyz>
Thu, 16 Feb 2017 20:05:40 +0000 (12:05 -0800)
lib/decompress/zstd_decompress.c
lib/legacy/zstd_v06.c
lib/legacy/zstd_v07.c

index 52949be99aa6551334536de0a47dbeaf3d13f8d2..404d0b83dd18d44f047c8ab74b3b3f9991521a7c 100644 (file)
@@ -2260,7 +2260,7 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB
 
             /* Adapt buffer sizes to frame header instructions */
             {   size_t const blockSize = MIN(zds->fParams.windowSize, ZSTD_BLOCKSIZE_ABSOLUTEMAX);
-                size_t const neededOutSize = zds->fParams.windowSize + blockSize + WILDCOPY_OVERLENGTH;
+                size_t const neededOutSize = zds->fParams.windowSize + blockSize + WILDCOPY_OVERLENGTH * 2;
                 zds->blockSize = blockSize;
                 if (zds->inBuffSize < blockSize) {
                     ZSTD_free(zds->inBuff, zds->customMem);
index 1d65e8f7d4d9e1f073108cce893c1b0a1222fcba..f586db2266d70691a5fe247b2dfc2b1cee832bd6 100644 (file)
@@ -4108,7 +4108,7 @@ size_t ZBUFFv06_decompressContinue(ZBUFFv06_DCtx* zbd,
                     zbd->inBuff = (char*)malloc(blockSize);
                     if (zbd->inBuff == NULL) return ERROR(memory_allocation);
                 }
-                {   size_t const neededOutSize = ((size_t)1 << zbd->fParams.windowLog) + blockSize + WILDCOPY_OVERLENGTH;
+                {   size_t const neededOutSize = ((size_t)1 << zbd->fParams.windowLog) + blockSize + WILDCOPY_OVERLENGTH * 2;
                     if (zbd->outBuffSize < neededOutSize) {
                         free(zbd->outBuff);
                         zbd->outBuffSize = neededOutSize;
index c93a217f4e7c99498a32c9f524b45c1d58cccb19..07099d5abd987a30b78fb58203b6736d4f075eeb 100644 (file)
@@ -4483,7 +4483,7 @@ size_t ZBUFFv07_decompressContinue(ZBUFFv07_DCtx* zbd,
                     zbd->inBuff = (char*)zbd->customMem.customAlloc(zbd->customMem.opaque, blockSize);
                     if (zbd->inBuff == NULL) return ERROR(memory_allocation);
                 }
-                {   size_t const neededOutSize = zbd->fParams.windowSize + blockSize + WILDCOPY_OVERLENGTH;
+                {   size_t const neededOutSize = zbd->fParams.windowSize + blockSize + WILDCOPY_OVERLENGTH * 2;
                     if (zbd->outBuffSize < neededOutSize) {
                         zbd->customMem.customFree(zbd->customMem.opaque, zbd->outBuff);
                         zbd->outBuffSize = neededOutSize;