From 115402310889908f2173e3c06f3dae34e03606df Mon Sep 17 00:00:00 2001 From: Alex Kocharin Date: Thu, 9 Jun 2022 16:55:44 +0300 Subject: [PATCH] Fix bug when level 0 used with Z_HUFFMAN or Z_RLE. https://github.com/madler/zlib/commit/94575859cf7f657f0f31aff4c50761fe3f182699 --- lib/zlib/deflate.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/zlib/deflate.js b/lib/zlib/deflate.js index 2fca402..a0df5ba 100644 --- a/lib/zlib/deflate.js +++ b/lib/zlib/deflate.js @@ -1666,9 +1666,10 @@ const deflate = (strm, flush) => { */ if (strm.avail_in !== 0 || s.lookahead !== 0 || (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) { - let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) : - (s.strategy === Z_RLE ? deflate_rle(s, flush) : - configuration_table[s.level].func(s, flush)); + let bstate = s.level === 0 ? deflate_stored(s, flush) : + s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : + s.strategy === Z_RLE ? deflate_rle(s, flush) : + configuration_table[s.level].func(s, flush); if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { s.status = FINISH_STATE;