From ad73ab0250cd0a45de71100bd7f221146ef02097 Mon Sep 17 00:00:00 2001
From: Dominik Loidolt <dominik.loidolt@univie.ac.at>
Date: Mon, 19 Feb 2024 12:54:53 +0100
Subject: [PATCH] Prevent buffer overflow in chunk compression

---
 lib/icu_compress/cmp_icu.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/icu_compress/cmp_icu.c b/lib/icu_compress/cmp_icu.c
index 1423c2c..05a47e7 100644
--- a/lib/icu_compress/cmp_icu.c
+++ b/lib/icu_compress/cmp_icu.c
@@ -2678,6 +2678,8 @@ int32_t compress_chunk(void *chunk, uint32_t chunk_size,
 			debug_print("Error: The chunk contains collections with an incompatible mix of subservices.\n");
 			return -1;
 		}
+		if (read_bytes + cmp_col_get_size(col) > chunk_size)
+			break;
 
 		cmp_size_byte = cmp_collection((uint8_t *)col, col_model, col_up_model,
 					       dst, dst_capacity, &cfg, cmp_size_byte);
-- 
GitLab