The quilt patch titled Subject: lib/zlib: DFLTCC not writing header bits when avail_out == 0 has been removed from the -mm tree. Its filename was lib-zlib-dfltcc-not-writing-header-bits-when-avail_out-==-0.patch This patch was dropped because it was merged into the mm-nonmm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm ------------------------------------------------------ From: Mikhail Zaslonko <zaslonko@xxxxxxxxxxxxx> Subject: lib/zlib: DFLTCC not writing header bits when avail_out == 0 Date: Thu, 26 Jan 2023 14:14:25 +0100 This commit is based on: https://github.com/zlib-ng/zlib-ng/commit/ce409c6 Link: https://lkml.kernel.org/r/20230126131428.1222214-6-zaslonko@xxxxxxxxxxxxx Signed-off-by: Mikhail Zaslonko <zaslonko@xxxxxxxxxxxxx> Acked-by: Ilya Leoshkevich <iii@xxxxxxxxxxxxx> Cc: Heiko Carstens <hca@xxxxxxxxxxxxx> Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/lib/zlib_dfltcc/dfltcc_deflate.c~lib-zlib-dfltcc-not-writing-header-bits-when-avail_out-==-0 +++ a/lib/zlib_dfltcc/dfltcc_deflate.c @@ -170,13 +170,18 @@ again: param->bcf = 0; dfltcc_state->block_threshold = strm->total_in + dfltcc_state->block_size; - if (strm->avail_out == 0) { - *result = need_more; - return 1; - } } } + /* No space for compressed data. If we proceed, dfltcc_cmpr() will return + * DFLTCC_CC_OP1_TOO_SHORT without buffering header bits, but we will still + * set BCF=1, which is wrong. Avoid complications and return early. + */ + if (strm->avail_out == 0) { + *result = need_more; + return 1; + } + /* The caller gave us too much data. Pass only one block worth of * uncompressed data to DFLTCC and mask the rest, so that on the next * iteration we start a new block. _ Patches currently in -mm which might be from zaslonko@xxxxxxxxxxxxx are