realloc(ptr, 0) is always allowed by the standard. The return value is either NULL or a pointer that can be freed with free().
Allow usage of qemu_realloc(ptr, 0), and return NULL in that case, as free(NULL) should always be a nop. This fixes -kernel with stripped kernels. Signed-off-by: Aurelien Jarno <aurel...@aurel32.net> --- qemu-malloc.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qemu-malloc.c b/qemu-malloc.c index 5d9e34d..cf6a1f1 100644 --- a/qemu-malloc.c +++ b/qemu-malloc.c @@ -63,10 +63,10 @@ void *qemu_realloc(void *ptr, size_t size) { if (size) { return oom_check(realloc(ptr, size)); - } else if (allow_zero_malloc()) { - return oom_check(realloc(ptr, size ? size : 1)); + } else if (ptr) { + qemu_free(ptr); } - abort(); + return NULL; } void *qemu_mallocz(size_t size) -- 1.6.5.3