From 6f405478b49190d354750a63cd7c68fece5b5501 Mon Sep 17 00:00:00 2001 From: Dominik Loidolt <dominik.loidolt@univie.ac.at> Date: Thu, 18 Apr 2024 14:23:15 +0200 Subject: [PATCH] Add new error code if the max_used_bits parameters are invalid --- lib/common/cmp_error.c | 2 ++ lib/common/cmp_error_list.h | 1 + lib/icu_compress/cmp_icu.c | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/common/cmp_error.c b/lib/common/cmp_error.c index b81e595..1579151 100644 --- a/lib/common/cmp_error.c +++ b/lib/common/cmp_error.c @@ -86,6 +86,8 @@ const char* cmp_get_error_string(enum cmp_error code) return "Specific compression parameters or combination is unsupported"; case CMP_ERROR_PAR_BUFFERS: return "Buffer related parameter is not valid"; + case CMP_ERROR_PAR_MAX_USED_BITS: + return "Maximum used bits parameters are not valid"; case CMP_ERROR_CHUNK_NULL: return "Pointer to the chunk is NULL. No data, no compression"; diff --git a/lib/common/cmp_error_list.h b/lib/common/cmp_error_list.h index f2f8bff..e28eb94 100644 --- a/lib/common/cmp_error_list.h +++ b/lib/common/cmp_error_list.h @@ -34,6 +34,7 @@ enum cmp_error { CMP_ERROR_PAR_GENERIC = 20, CMP_ERROR_PAR_SPECIFIC = 21, CMP_ERROR_PAR_BUFFERS = 22, + CMP_ERROR_PAR_MAX_USED_BITS = 23, /* chunk errors */ CMP_ERROR_CHUNK_NULL = 40, CMP_ERROR_CHUNK_TOO_LARGE = 41, diff --git a/lib/icu_compress/cmp_icu.c b/lib/icu_compress/cmp_icu.c index 7df32bf..b0fd6cd 100644 --- a/lib/icu_compress/cmp_icu.c +++ b/lib/icu_compress/cmp_icu.c @@ -2031,7 +2031,7 @@ static uint32_t cmp_cfg_icu_is_invalid_error_code(const struct cmp_cfg *cfg) RETURN_ERROR_IF(cmp_cfg_icu_buffers_is_invalid(cfg), PAR_BUFFERS, ""); if (cfg->cmp_mode != CMP_MODE_RAW) - RETURN_ERROR_IF(cmp_cfg_icu_max_used_bits_out_of_limit(cfg->max_used_bits), GENERIC, ""); + RETURN_ERROR_IF(cmp_cfg_icu_max_used_bits_out_of_limit(cfg->max_used_bits), PAR_MAX_USED_BITS, ""); if (cmp_imagette_data_type_is_used(cfg->data_type)) { RETURN_ERROR_IF(cmp_cfg_imagette_is_invalid(cfg, ICU_CHECK), PAR_SPECIFIC, ""); @@ -2777,7 +2777,7 @@ uint32_t compress_chunk_cmp_size_bound(const void *chunk, size_t chunk_size) /* count the number of collections in the chunk */ for (read_bytes = 0; - read_bytes <= (int32_t)chunk_size-COLLECTION_HDR_SIZE; + read_bytes <= (int32_t)(chunk_size-COLLECTION_HDR_SIZE); read_bytes += cmp_col_get_size((const struct collection_hdr *)((const uint8_t *)chunk + read_bytes))) num_col++; -- GitLab