It is said that the C17 realloc() behavior is to return the original pointer on error and that's what is implemented here. This may be confused with a successful realloc() and nobody else does that. Instead, a failed realloc() should return NULL, leave the original memory intact and set errno to ENOMEM. This is the behavior described by all the following references: Linux/glibc: https://man7.org/linux/man-pages/man3/malloc.3.html NetBSD https://man.netbsd.org/realloc.3 Microsoft https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/realloc Mac OS X https://developer.apple.com/library/archive/documentation/System/\ Conceptual/ManPages_iPhoneOS/man3/reallocf.3.html Open Group Base Specifications Issue 6 https://pubs.opengroup.org/onlinepubs/009604599/functions/realloc.html PTC MKS Toolkit https://www.mkssoftware.com/docs/man3/realloc.3.asp Let's get in line with the most common behavior. Signed-off-by: Nicolas Pitre <npitre@baylibre.com> |
||
|---|---|---|
| .. | ||
| abort.c | ||
| atoi.c | ||
| bsearch.c | ||
| exit.c | ||
| malloc.c | ||
| strtol.c | ||
| strtoul.c | ||