Re: [PATCH] bcachefs: Add error handling for zlib_deflateInit2()

From: Kent Overstreet
Date: Wed Apr 02 2025 - 10:19:27 EST


On Wed, Apr 02, 2025 at 09:45:44PM +0800, Wentao Liang wrote:
> In attempt_compress(), the return value of zlib_deflateInit2() needs to be
> checked. A proper implementation can be found in pstore_compress().
>
> Add an error check and return 0 immediately if the initialzation fails.
>
> Fixes: 986e9842fb68 ("bcachefs: Compression levels")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>

Applied

> ---
> fs/bcachefs/compress.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/fs/bcachefs/compress.c b/fs/bcachefs/compress.c
> index f99ff1819597..5af37c40cef0 100644
> --- a/fs/bcachefs/compress.c
> +++ b/fs/bcachefs/compress.c
> @@ -365,13 +365,14 @@ static int attempt_compress(struct bch_fs *c,
> };
>
> zlib_set_workspace(&strm, workspace);
> - zlib_deflateInit2(&strm,
> + if (zlib_deflateInit2(&strm,
> compression.level
> ? clamp_t(unsigned, compression.level,
> Z_BEST_SPEED, Z_BEST_COMPRESSION)
> : Z_DEFAULT_COMPRESSION,
> Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL,
> - Z_DEFAULT_STRATEGY);
> + Z_DEFAULT_STRATEGY) != Z_OK)
> + return 0;
>
> if (zlib_deflate(&strm, Z_FINISH) != Z_STREAM_END)
> return 0;
> --
> 2.42.0.windows.2
>