From 5e6d3044fbf57fe9fcb2694fd07848be16ff1102 Mon Sep 17 00:00:00 2001 From: Dominik Loidolt <dominik.loidolt@univie.ac.at> Date: Fri, 19 Apr 2024 11:13:18 +0200 Subject: [PATCH] Detect error if cmp_par is NULL --- lib/common/cmp_error.c | 2 ++ lib/common/cmp_error_list.h | 1 + lib/icu_compress/cmp_icu.c | 1 + 3 files changed, 4 insertions(+) diff --git a/lib/common/cmp_error.c b/lib/common/cmp_error.c index 1579151..30da8f5 100644 --- a/lib/common/cmp_error.c +++ b/lib/common/cmp_error.c @@ -88,6 +88,8 @@ const char* cmp_get_error_string(enum cmp_error code) 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_PAR_NULL: + return "Pointer to the compression parameters structure is NULL."; 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 e28eb94..9344857 100644 --- a/lib/common/cmp_error_list.h +++ b/lib/common/cmp_error_list.h @@ -35,6 +35,7 @@ enum cmp_error { CMP_ERROR_PAR_SPECIFIC = 21, CMP_ERROR_PAR_BUFFERS = 22, CMP_ERROR_PAR_MAX_USED_BITS = 23, + CMP_ERROR_PAR_NULL = 24, /* 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 b0fd6cd..faa9d53 100644 --- a/lib/icu_compress/cmp_icu.c +++ b/lib/icu_compress/cmp_icu.c @@ -2688,6 +2688,7 @@ uint32_t compress_chunk(void *chunk, uint32_t chunk_size, size_t read_bytes; RETURN_ERROR_IF(chunk == NULL, CHUNK_NULL, ""); + RETURN_ERROR_IF(cmp_par == NULL, PAR_NULL, ""); RETURN_ERROR_IF(chunk_size < COLLECTION_HDR_SIZE, CHUNK_SIZE_INCONSISTENT, "chunk_size: %"PRIu32"", chunk_size); RETURN_ERROR_IF(chunk_size > CMP_ENTITY_MAX_ORIGINAL_SIZE, CHUNK_TOO_LARGE, -- GitLab