Re: [PATCH] s390: kvm/sigp.c: fix memory leakage

Cornelia Huck
2013-01-15T10:08:36Z

On Mon, 14 Jan 2013 22:39:54 +0100
Cong Ding <dinggnu@gmail.com> wrote:

> the variable inti should be freed in the branch CPUSTAT_STOPPED.
>
> Signed-off-by: Cong Ding <dinggnu@gmail.com>
> ---
> arch/s390/kvm/sigp.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c
> index 461e841..1c48ab2 100644
> --- a/arch/s390/kvm/sigp.c
> +++ b/arch/s390/kvm/sigp.c
> @@ -137,8 +137,10 @@ static int __inject_sigp_stop(struct kvm_s390_local_interrupt *li, int action)
> inti->type = KVM_S390_SIGP_STOP;
>
> spin_lock_bh(&li->lock);
> - if ((atomic_read(li->cpuflags) & CPUSTAT_STOPPED))
> + if ((atomic_read(li->cpuflags) & CPUSTAT_STOPPED)) {
> + kfree(inti);
> goto out;
> + }
> list_add_tail(&inti->list, &li->list);
> atomic_set(&li->active, 1);
> atomic_set_mask(CPUSTAT_STOP_INT, li->cpuflags);

Thanks, applied.