From 11f31ceb6af75c8653ba68d93f5f6c8def1391e0 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 18 Mar 2014 14:42:44 +0100 Subject: [PATCH] array: Fix removal of elements in the second half of an array Memory beyond the end of the array was moved when array elements in the second half of an array were removed. Fixes #548. --- src/libstrongswan/collections/array.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libstrongswan/collections/array.c b/src/libstrongswan/collections/array.c index 314e8e9165..75efb85bf6 100644 --- a/src/libstrongswan/collections/array.c +++ b/src/libstrongswan/collections/array.c @@ -141,7 +141,7 @@ static void remove_tail(array_t *array, int idx) /* move all items after idx one down */ memmove(array->data + get_size(array, idx + array->head), array->data + get_size(array, idx + array->head + 1), - get_size(array, array->count - idx)); + get_size(array, array->count - 1 - idx)); array->count--; array->tail++; } -- 2.47.3