From: Eric Biggers Date: Sat, 2 Aug 2014 14:19:54 +0000 (-0500) Subject: lzms-compress.c: Fix crash on compression levels 1 through 4 X-Git-Tag: v1.7.1~17 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=dd95b601226f4c508252ad3cd7c7a2887ee48486 lzms-compress.c: Fix crash on compression levels 1 through 4 lzms_get_near_optimal_item() assumes that nice_match_length >= min_match_length. --- diff --git a/src/lzms-compress.c b/src/lzms-compress.c index d93ce3d1..b4391c2b 100644 --- a/src/lzms-compress.c +++ b/src/lzms-compress.c @@ -1309,7 +1309,8 @@ lzms_build_params(unsigned int compression_level, struct lzms_compressor_params *lzms_params) { lzms_params->min_match_length = (compression_level >= 50) ? 2 : 3; - lzms_params->nice_match_length = ((u64)compression_level * 32) / 50; + lzms_params->nice_match_length = max(((u64)compression_level * 32) / 50, + lzms_params->min_match_length); lzms_params->max_search_depth = ((u64)compression_level * 50) / 50; lzms_params->optim_array_length = 224 + compression_level * 16; }