On 2019-09-09 11:13, Petr Skočík wrote:
There's been a twitter discussion on how different POSIX platforms
handle malloc(0):
https://twitter.com/sortiecat/status/1170697927804817412 .
As for Cygwin, the answer appears to be "not well", but this should be
easy to fix.
POSIX SUS V4 2018 says:
"RETURN VALUE
Upon successful completion with size not equal to 0, malloc() shall
return a
pointer to the allocated space. If size is 0, either:
A null pointer shall be returned [CX] [Option Start] and errno may be
set to
an implementation-defined value, [Option End] or
A pointer to the allocated space shall be returned. The application
shall
ensure that the pointer is not used to access an object.
Otherwise, it shall return a null pointer [CX] [Option Start] and set
errno to
indicate the error. [Option End]"
The second option could be implemented by a pointer to an unmapped
page, or a
reference to an inaccessible mmap-ed area length zero.