From: Yann Collet Date: Tue, 22 Oct 2024 22:25:45 +0000 (-0700) Subject: conservatively estimate over-splitting in presence of incompressible loss X-Git-Tag: v1.5.7^2~71^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea85dc7af6f97cbfc7fd1e6ff1515660e58501a3;p=thirdparty%2Fzstd.git conservatively estimate over-splitting in presence of incompressible loss ensure data can never be expanded by more than 3 bytes per full block. --- diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index edb71ae50..85966d888 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -4587,6 +4587,7 @@ static size_t ZSTD_compress_frameChunk(ZSTD_CCtx* cctx, } /* if (ZSTD_useTargetCBlockSize(&cctx->appliedParams))*/ if (cSize < blockSize) savings += (blockSize - cSize); + else if (savings) savings--; ip += blockSize; assert(remaining >= blockSize); remaining -= blockSize;