Make zero size allocation result consistent across directives

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Apr 21 06:07:53 UTC 2021


Hello,

while working on the specification of some memory allocation directives 
I noticed that zero size allocations have no consistent behaviour in 
RTEMS. For example malloc( 0 ) returns NULL and posix_memalign(&p, 
align, 0) returns in p a unique pointer (or NULL if no memory is 
available). 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

See also:

http://devel.rtems.org/ticket/4390

Linux returns a unique pointer for zero size memory allocations. I tend 
to use this approach as well and would like to remove the


   /*
    * Validate the parameters
    */
   if ( !size )
     return (void *) 0;

in the RTEMS malloc().

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/



More information about the devel mailing list