Commit 47de5a0
libc/minimal: fix realloc() failure case
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 <[email protected]>1 parent 5939970 commit 47de5a0
1 file changed
+4
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
64 | 67 | | |
65 | 68 | | |
66 | 69 | | |
| |||
0 commit comments