[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH semi-urgent v2] linux-user: Fix exit syscall wit
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH semi-urgent v2] linux-user: Fix exit syscall with QOM CPU |
Date: |
Sun, 15 Apr 2012 18:35:54 +0000 |
On Sun, Apr 15, 2012 at 16:51, Andreas Färber <address@hidden> wrote:
> For QOM'ified CPUs we cannot g_free() CPUArchState, we must
> object_delete() the object it is embedded into.
>
> Fixes LP#982321 (invalid free() while executing pacman with qemu-arm).
>
> Reported-by: Serge Schneider <address@hidden>
> Reported-by: Russell Keith Davis <address@hidden>
> Signed-off-by: Andreas Färber <address@hidden>
> Reviewed-by: Peter Maydell <address@hidden>
> Tested-by: Serge Schneider <address@hidden>
> Tested-by: Russell Keith Davis <address@hidden>
> ---
> Blue, can you please apply this fix before more targets get converted and
> run into regressions? Thanks! (ppc PULL coming up)
Thanks, applied.
>
> linux-user/syscall.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 8a92162..7128618 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5045,7 +5045,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long
> arg1,
> NULL, NULL, 0);
> }
> thread_env = NULL;
> +#ifdef ENV_GET_CPU
> + object_delete(OBJECT(ENV_GET_CPU(cpu_env)));
> +#else
> g_free(cpu_env);
> +#endif
> g_free(ts);
> pthread_exit(NULL);
> }
> --
> 1.7.7
>