Skip to content
Commit 47de5a05 authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Anas Nashif
Browse files

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: default avatarNicolas Pitre <npitre@baylibre.com>
parent 59399704
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment