From 2c5199bb049efe8e29cd12461dc57bd6e30388e8 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 5 May 2021 08:49:52 +0200 Subject: Return NULL for zero size allocations In POSIX, zero size memory allocations are implementation-defined behaviour. The implementation has two options: https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html Linux and FreeBSD return a unique pointer for zero size memory allocations. Return NULL on RTEMS to more likely catch the use of a zero size memory area by erroneous applications. Update #4390. --- cpukit/libcsupport/src/malloc_deferred.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'cpukit/libcsupport/src/malloc_deferred.c') diff --git a/cpukit/libcsupport/src/malloc_deferred.c b/cpukit/libcsupport/src/malloc_deferred.c index aab76406c7..b319d1213e 100644 --- a/cpukit/libcsupport/src/malloc_deferred.c +++ b/cpukit/libcsupport/src/malloc_deferred.c @@ -106,6 +106,10 @@ void *rtems_heap_allocate_aligned_with_boundary( void *rtems_malloc( size_t size ) { + if ( size == 0 ) { + return NULL; + } + return rtems_heap_allocate_aligned_with_boundary( size, 0, 0 ); } #endif -- cgit v1.2.3