From 8d0413d2a06c81417a791556829348b657df788f Mon Sep 17 00:00:00 2001 From: Marc Zyngier Date: Thu, 11 Apr 2013 17:36:22 +0100 Subject: [PATCH] kvm tools: arm: don't crash when no compatible CPU is found If the kernel against which kvm tools was compiled supports more CPU types than kvm tools does, then we can hit a situation where we dereference an empty target slot. Just stepping over empty slots fixes the issue. Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon Signed-off-by: Pekka Enberg --- arm/kvm-cpu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arm/kvm-cpu.c b/arm/kvm-cpu.c index 7a0eff4..2716690 100644 --- a/arm/kvm-cpu.c +++ b/arm/kvm-cpu.c @@ -56,6 +56,8 @@ struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id) /* Find an appropriate target CPU type. */ for (i = 0; i < ARRAY_SIZE(kvm_arm_targets); ++i) { + if (!kvm_arm_targets[i]) + continue; vcpu_init.target = kvm_arm_targets[i]->id; err = ioctl(vcpu->vcpu_fd, KVM_ARM_VCPU_INIT, &vcpu_init); if (!err)