From 8636ac26cf5547eaf3a44b241521bc4ab48ed1ed Mon Sep 17 00:00:00 2001 From: kieranm Date: Mon, 31 Mar 2003 09:36:18 +0000 Subject: [PATCH] Fixed bug in mem_realloc (check alignment of size) --- src/core/mem.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/core/mem.c b/src/core/mem.c index 50f2bbe4..7b64ddfb 100644 --- a/src/core/mem.c +++ b/src/core/mem.c @@ -192,6 +192,16 @@ mem_realloc(void *rmem, mem_size_t newsize) mem_size_t size; mem_size_t ptr, ptr2; struct mem *mem, *mem2; + + /* Expand the size of the allocated memory region so that we can + adjust for alignment. */ + if((newsize % MEM_ALIGNMENT) != 0) { + newsize += MEM_ALIGNMENT - ((newsize + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT); + } + + if(newsize > MEM_SIZE) { + return NULL; + } sys_sem_wait(mem_sem);