# HG changeset patch # User Mike Becker # Date 1766418024 -3600 # Node ID 68a03cf89e15464ac78599034699618338f73069 # Parent 745ae507ee145bf1a798a639139d8324a55e98c2 add overflow check to cx_array_insert() diff -r 745ae507ee14 -r 68a03cf89e15 src/array_list.c --- a/src/array_list.c Mon Dec 22 16:36:06 2025 +0100 +++ b/src/array_list.c Mon Dec 22 16:40:24 2025 +0100 @@ -101,9 +101,16 @@ if (index > array->size) return -1; if (n == 0) return 0; + // calculate required capacity + size_t req_capacity = array->size + n; + if (req_capacity <= array->size) { + errno = EOVERFLOW; + return -1; + } + // guarantee enough capacity - if (array->capacity < array->size + n) { - const size_t new_capacity = cx_array_grow_capacity(array->capacity,array->size + n); + if (array->capacity < req_capacity) { + const size_t new_capacity = cx_array_grow_capacity(array->capacity,req_capacity); if (cxReallocateArray(allocator, &array->data, new_capacity, elem_size)) { return -1; // LCOV_EXCL_LINE }