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


Reply via email to