On Mon, Dec 28, 2009 at 04:49:00PM +0100, Aurelien Jarno wrote: > 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.
As malc explained in the other thread, this is not correct in C99. I am therefore "cancelling" this patch. > 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 > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net