Commit 9364f17b authored by Wentao Liang's avatar Wentao Liang Committed by Kent Overstreet
Browse files

bcachefs: Add error handling for zlib_deflateInit2()



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: 986e9842 ("bcachefs: Compression levels")
Signed-off-by: default avatarWentao Liang <vulab@iscas.ac.cn>
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent a07c43e6
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -371,13 +371,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;