X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Flzms-compress.c;h=b81de0528593b47637b94f1a1d7028c6a42555cc;hb=edf0f7f5331e626b55819dcafa88e202cdb82a32;hp=6f17f5db1e3f56a82044eae0d86e4c814ea48522;hpb=5c3a7d924621f76d54a1a45d9ecf376159a7eaf7;p=wimlib diff --git a/src/lzms-compress.c b/src/lzms-compress.c index 6f17f5db..b81de052 100644 --- a/src/lzms-compress.c +++ b/src/lzms-compress.c @@ -32,6 +32,7 @@ #endif #include "wimlib.h" +#include "wimlib/assert.h" #include "wimlib/compiler.h" #include "wimlib/compressor_ops.h" #include "wimlib/compress_common.h" @@ -1179,6 +1180,9 @@ static const struct wimlib_lzms_compressor_params lzms_default = { .optim_array_length = 1024, }; +static bool +lzms_params_valid(const struct wimlib_compressor_params_header *); + static const struct wimlib_lzms_compressor_params * lzms_get_params(const struct wimlib_compressor_params_header *_params) { @@ -1188,6 +1192,8 @@ lzms_get_params(const struct wimlib_compressor_params_header *_params) if (params == NULL) params = &lzms_default; + LZMS_ASSERT(lzms_params_valid(¶ms->hdr)); + return params; } @@ -1221,7 +1227,7 @@ lzms_create_compressor(size_t max_block_size, if (!lz_sarray_init(&ctx->lz_sarray, max_block_size, params->min_match_length, - params->max_match_length, + min(params->max_match_length, LZ_SARRAY_LEN_MAX), params->max_search_depth, params->max_matches_per_pos)) goto oom;