KVM: PPC: Book3S HV: Fix memory leak in kvm_vm_ioctl_get_htab_fd
authornixiaoming <nixiaoming@huawei.com>
Thu, 31 Aug 2017 10:51:09 +0000 (18:51 +0800)
committerPaul Mackerras <paulus@ozlabs.org>
Fri, 1 Sep 2017 00:17:58 +0000 (10:17 +1000)
We do ctx = kzalloc(sizeof(*ctx), GFP_KERNEL) and then later on call
anon_inode_getfd(), but if that fails we don't free ctx, so that
memory gets leaked.  To fix it, this adds kfree(ctx) in the failure
path.

Signed-off-by: nixiaoming <nixiaoming@huawei.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
arch/powerpc/kvm/book3s_64_mmu_hv.c

index 67075e065ef2d39a69763b47ce34660226be440b..7c62967d672caa818d12c26620520603fb3c49c7 100644 (file)
@@ -1941,6 +1941,7 @@ int kvm_vm_ioctl_get_htab_fd(struct kvm *kvm, struct kvm_get_htab_fd *ghf)
        rwflag = (ghf->flags & KVM_GET_HTAB_WRITE) ? O_WRONLY : O_RDONLY;
        ret = anon_inode_getfd("kvm-htab", &kvm_htab_fops, ctx, rwflag | O_CLOEXEC);
        if (ret < 0) {
+               kfree(ctx);
                kvm_put_kvm(kvm);
                return ret;
        }