From: Yann Collet Date: Tue, 22 Aug 2017 19:08:39 +0000 (-0700) Subject: fixed extraordinary scenario where all fields use maximum possible nb of bits simulta... X-Git-Tag: fuzz-corpora2~44^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F812%2Fhead;p=thirdparty%2Fzstd.git fixed extraordinary scenario where all fields use maximum possible nb of bits simultaneously can only happen if windowLog>=27 (level 22 --ultra) --- diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index 0322c03eb..66641e3d9 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -1131,7 +1131,7 @@ MEM_STATIC size_t ZSTD_encodeSequences(void* dst, size_t dstCapacity, BIT_addBits(&blockStream, sequences[n].litLength, llBits); if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream); BIT_addBits(&blockStream, sequences[n].matchLength, mlBits); - if (MEM_32bits()) BIT_flushBits(&blockStream); /* (7)*/ + if (MEM_32bits() || (ofBits+mlBits+llBits > 56)) BIT_flushBits(&blockStream); if (longOffsets) { int const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1); if (extraBits) {