From eeef4e4752843b4b9a982aaffaa3fc28431705ab Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Wed, 7 Aug 2024 23:17:06 +0200 Subject: [PATCH] safe array add extra safety checks to array_realloc --- src/safe_array.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/safe_array.c b/src/safe_array.c index 720b97c..e33189d 100644 --- a/src/safe_array.c +++ b/src/safe_array.c @@ -49,7 +49,16 @@ array_t *array_realloc(array_t* arr, size_t rows) fprintf(stderr, "%s: ptr dereferences to NULL\n", __func__); return NULL; } - + if (arr->rows > rows) + { + fprintf(stderr, "%s: arr->rows (%d) > rows (%d)\n", __func__, arr->rows, rows); + return NULL; + } + if (arr->rows == rows) + { + return arr; + } + array_t *new_arr = realloc(arr, sizeof(array_t) + (arr->size * rows - 1)); if (!new_arr) {