]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
riscv: kvm: fix vector context allocation leak
authorOsama Abdelkader <osama.abdelkader@gmail.com>
Mon, 16 Mar 2026 15:16:11 +0000 (16:16 +0100)
committerAnup Patel <anup@brainfault.org>
Fri, 27 Mar 2026 13:10:29 +0000 (18:40 +0530)
When the second kzalloc (host_context.vector.datap) fails in
kvm_riscv_vcpu_alloc_vector_context, the first allocation
(guest_context.vector.datap) is leaked. Free it before returning.

Fixes: 0f4b82579716 ("riscv: KVM: Add vector lazy save/restore support")
Cc: stable@vger.kernel.org
Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Reviewed-by: Andy Chiu <andybnac@gmail.com>
Link: https://lore.kernel.org/r/20260316151612.13305-1-osama.abdelkader@gmail.com
Signed-off-by: Anup Patel <anup@brainfault.org>
arch/riscv/kvm/vcpu_vector.c

index 05f3cc2d8e311ac62a56186b3599b5d389bf6f83..5b6ad82d47beb73af71554b66ff14b8f1b49bc6e 100644 (file)
@@ -80,8 +80,11 @@ int kvm_riscv_vcpu_alloc_vector_context(struct kvm_vcpu *vcpu)
                return -ENOMEM;
 
        vcpu->arch.host_context.vector.datap = kzalloc(riscv_v_vsize, GFP_KERNEL);
-       if (!vcpu->arch.host_context.vector.datap)
+       if (!vcpu->arch.host_context.vector.datap) {
+               kfree(vcpu->arch.guest_context.vector.datap);
+               vcpu->arch.guest_context.vector.datap = NULL;
                return -ENOMEM;
+       }
 
        return 0;
 }