From: Bimba Shrestha Date: Mon, 18 Nov 2019 16:43:14 +0000 (-0800) Subject: Output regular uncompressed block when compressSequences fails X-Git-Tag: v1.4.5^2~132^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dade64428f093b111195cc1ac2e474633735a0cd;p=thirdparty%2Fzstd.git Output regular uncompressed block when compressSequences fails --- diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index 0639d3272..a883d21c1 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -2496,7 +2496,13 @@ static size_t ZSTD_compressBlock_targetCBlockSize(ZSTD_CCtx* zc, srcSize, zc->entropyWorkspace, HUF_WORKSPACE_SIZE /* statically allocated in resetCCtx */, zc->bmi2); - if (!ZSTD_isError(cSize) && cSize != 0) { + + if (cSize == 0) { + /* If compressSequences didn't work, we just output a regular + * uncompressed block */ + cSize = ZSTD_noCompressBlock(dst, dstCapacity, src, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize); + } else { U32 const cBlockHeader24 = lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); MEM_writeLE24(ostart, cBlockHeader24); cSize += ZSTD_blockHeaderSize;