From dd95b601226f4c508252ad3cd7c7a2887ee48486 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Sat, 2 Aug 2014 09:19:54 -0500 Subject: [PATCH] lzms-compress.c: Fix crash on compression levels 1 through 4 lzms_get_near_optimal_item() assumes that nice_match_length >= min_match_length. --- src/lzms-compress.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; } -- 2.43.0