]> git.ipfire.org Git - thirdparty/qemu.git/commit
target/i386: do not crash if microvm guest uses SGX CPUID leaves
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 16 Jul 2024 16:53:11 +0000 (18:53 +0200)
committerMichael Tokarev <mjt@tls.msk.ru>
Tue, 27 Aug 2024 19:13:34 +0000 (22:13 +0300)
commita9835528692d91f0e1c7ed2093bb2c503eac8681
tree8eb630f59d6c9f198c191f251cf268dd03fef852
parent4071db54faca52c53dbeabfc78b08ab3092290ac
target/i386: do not crash if microvm guest uses SGX CPUID leaves

sgx_epc_get_section assumes a PC platform is in use:

bool sgx_epc_get_section(int section_nr, uint64_t *addr, uint64_t *size)
{
    PCMachineState *pcms = PC_MACHINE(qdev_get_machine());

However, sgx_epc_get_section is called by CPUID regardless of whether
SGX state has been initialized or which platform is in use.  Check
whether the machine has the right QOM class and if not behave as if
there are no EPC sections.

Fixes: 1dec2e1f19f ("i386: Update SGX CPUID info according to hardware/KVM/user input", 2021-09-30)
Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2142
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 13be929aff804581b21e69087a9caf3698fd5c3c)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/i386/sgx.c