diff --git a/src/libstrongswan/collections/array.c b/src/libstrongswan/collections/array.c index 8acc8051d5..8b6c6d7397 100644 --- a/src/libstrongswan/collections/array.c +++ b/src/libstrongswan/collections/array.c @@ -197,7 +197,17 @@ void array_compress(array_t *array) } if (tail) { - array->data = realloc(array->data, get_size(array, array->count)); + size_t size = get_size(array, array->count); + + if (size) + { + array->data = realloc(array->data, size); + } + else + { + free(array->data); + array->data = NULL; + } array->tail = 0; } }