]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
LoongArch: KVM: Make kvm_get_vcpu_by_cpuid() more robust
authorHuacai Chen <chenhuacai@loongson.cn>
Thu, 26 Mar 2026 06:29:09 +0000 (14:29 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Thu, 26 Mar 2026 06:29:09 +0000 (14:29 +0800)
kvm_get_vcpu_by_cpuid() takes a cpuid parameter whose type is int, so
cpuid can be negative. Let kvm_get_vcpu_by_cpuid() return NULL for this
case so as to make it more robust.

This fix an out-of-bounds access to kvm_arch::phyid_map::phys_map[].

Cc: <stable@vger.kernel.org>
Fixes: 73516e9da512adc ("LoongArch: KVM: Add vcpu mapping from physical cpuid")
Reported-by: Aurelien Jarno <aurel32@debian.org>
Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1131431
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kvm/vcpu.c

index 8ffd50a470e6b82d393d65aee9a5e7fdb07e2470..831f381a8fd1218748e3c969440a19b471f94a3f 100644 (file)
@@ -588,6 +588,9 @@ struct kvm_vcpu *kvm_get_vcpu_by_cpuid(struct kvm *kvm, int cpuid)
 {
        struct kvm_phyid_map *map;
 
+       if (cpuid < 0)
+               return NULL;
+
        if (cpuid >= KVM_MAX_PHYID)
                return NULL;