diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2019-11-03 18:07:34 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-03 18:07:34 +0100 |
| commit | 68dc6c6c62033987ad23037339d48d7859aa3d74 (patch) | |
| tree | f0964d3a2fbcabeb13b25a4fe61d5553596eecda /thirdparty/zstd/decompress/zstd_decompress.c | |
| parent | e684df08fced890a5d15f08b85c355c55b14e6be (diff) | |
| parent | 61ad365fc9a1c20505706f02c0d713f07aff18be (diff) | |
| download | redot-engine-68dc6c6c62033987ad23037339d48d7859aa3d74.tar.gz | |
Merge pull request #33254 from SneakyFish5/update-zstd
Update zstd to 1.4.3
Diffstat (limited to 'thirdparty/zstd/decompress/zstd_decompress.c')
| -rw-r--r-- | thirdparty/zstd/decompress/zstd_decompress.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/thirdparty/zstd/decompress/zstd_decompress.c b/thirdparty/zstd/decompress/zstd_decompress.c index e42872ad96..751060b2cd 100644 --- a/thirdparty/zstd/decompress/zstd_decompress.c +++ b/thirdparty/zstd/decompress/zstd_decompress.c @@ -574,9 +574,10 @@ void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst) } /** ZSTD_insertBlock() : - insert `src` block into `dctx` history. Useful to track uncompressed blocks. */ + * insert `src` block into `dctx` history. Useful to track uncompressed blocks. */ size_t ZSTD_insertBlock(ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize) { + DEBUGLOG(5, "ZSTD_insertBlock: %u bytes", (unsigned)blockSize); ZSTD_checkContinuity(dctx, blockStart); dctx->previousDstEnd = (const char*)blockStart + blockSize; return blockSize; @@ -909,6 +910,7 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c { blockProperties_t bp; size_t const cBlockSize = ZSTD_getcBlockSize(src, ZSTD_blockHeaderSize, &bp); if (ZSTD_isError(cBlockSize)) return cBlockSize; + RETURN_ERROR_IF(cBlockSize > dctx->fParams.blockSizeMax, corruption_detected, "Block Size Exceeds Maximum"); dctx->expected = cBlockSize; dctx->bType = bp.blockType; dctx->rleSize = bp.origSize; @@ -953,6 +955,7 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c RETURN_ERROR(corruption_detected); } if (ZSTD_isError(rSize)) return rSize; + RETURN_ERROR_IF(rSize > dctx->fParams.blockSizeMax, corruption_detected, "Decompressed Block Size Exceeds Maximum"); DEBUGLOG(5, "ZSTD_decompressContinue: decoded size from block : %u", (unsigned)rSize); dctx->decodedSize += rSize; if (dctx->fParams.checksumFlag) XXH64_update(&dctx->xxhState, dst, rSize); |
