mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:17 +00:00
hw/hyperv: Avoid crash if hyperv_find_cpu() passed invalid vp_index
The hyperv_find_cpu() function finds a CPU from a CPU index; this is basically a wrapper around qemu_get_cpu(). It is allowed to fail, in which case it returns NULL, which its caller handles. However, it includes an assertion check which accidentally assumes the CPU pointer is non-NULL. We could assert only if cs != NULL, but the assertion here is not doing anything interesting -- hyperv_vp_index() is a trivial wrapper returning cs->cpu_index, so this is effectively asserting that qemu_get_cpu() did what it claims to do, i.e. returned us the CPU matching the index we gave it. qemu_get_cpu() is a simple "iterate through list and find matching CPU" which is unlikely to be buggy, and we don't feel the need to sanity-check it in any of our other many uses of it. Drop the assertion entirely. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3568 Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260630084855.2319838-1-peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
This commit is contained in:
committed by
Philippe Mathieu-Daudé
parent
831a13665a
commit
67ebea439d
@@ -237,9 +237,7 @@ struct HvSintRoute {
|
||||
|
||||
static CPUState *hyperv_find_vcpu(uint32_t vp_index)
|
||||
{
|
||||
CPUState *cs = qemu_get_cpu(vp_index);
|
||||
assert(hyperv_vp_index(cs) == vp_index);
|
||||
return cs;
|
||||
return qemu_get_cpu(vp_index);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user