From 09f5cef085e9e326107fdf44203879a04138614e Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Thu, 9 Feb 2023 23:01:46 +0100 Subject: [PATCH] alloc: Fix passing wrong oldsize if oldsize==0 in verifying_alloc --- src/alloc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/alloc.c b/src/alloc.c index 173beba..1d3281e 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -35,12 +35,22 @@ verifying_alloc(void *opaque, void *oldptr, size_t oldsize, size_t newsize) } if (newsize == 0) { - void *newptr = ALLOCATOR_CALL(*wrapped, oldptr_actual, oldsize + sizeof(size_t), 0); + void *newptr = ALLOCATOR_CALL( + *wrapped, + oldptr_actual, + oldsize == 0 ? 0 : oldsize + sizeof(size_t), + 0 + ); assert(newptr == NULL); return newptr; } - size_t *newptr = ALLOCATOR_CALL(*wrapped, oldptr_actual, oldsize + sizeof(size_t), newsize + sizeof(size_t)); + size_t *newptr = ALLOCATOR_CALL( + *wrapped, + oldptr_actual, + oldsize == 0 ? 0 : oldsize + sizeof(size_t), + newsize + sizeof(size_t) + ); if (newptr == NULL) { return NULL; }