From 9fd69c14ab7e50a8cf4aea293c6ae94511cc9f41 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 30 Oct 2013 14:41:44 +0100 Subject: [PATCH] MALLOC(9): Return valid pointer for malloc(0), etc. --- rtemsbsd/rtems/rtems-bsd-malloc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtemsbsd/rtems/rtems-bsd-malloc.c b/rtemsbsd/rtems/rtems-bsd-malloc.c index a21fb942..4cf930ef 100644 --- a/rtemsbsd/rtems/rtems-bsd-malloc.c +++ b/rtemsbsd/rtems/rtems-bsd-malloc.c @@ -74,7 +74,7 @@ malloc_uninit(void *data) void * _bsd_malloc(unsigned long size, struct malloc_type *mtp, int flags) { - void *p = malloc(size); + void *p = malloc(size > 0 ? size : 1); if ((flags & M_ZERO) != 0 && p != NULL) { memset(p, 0, size); @@ -88,7 +88,7 @@ void * _bsd_realloc( void *addr, unsigned long size, struct malloc_type *type, int flags) { - void *p = realloc(addr, size); + void *p = realloc(addr, size > 0 ? size : 1); if ((flags & M_ZERO) != 0 && p != NULL) { memset(p, 0, size); @@ -102,7 +102,7 @@ void * _bsd_reallocf( void *addr, unsigned long size, struct malloc_type *type, int flags) { - void *p = realloc(addr, size); + void *p = realloc(addr, size > 0 ? size : 1); if (p == NULL) { free(addr,NULL);