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