diff --git a/lib/icu_compress/cmp_icu.c b/lib/icu_compress/cmp_icu.c
index 1423c2cb54219b50febfe16ee16d50d45a54c537..05a47e77dabed3bdbe91c4e5f4186822f0e2b69b 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);