i386/hvf: Fixes startup memory leak (vmcs caps)

The hvf_caps data structure only exists once as part of the hvf accelerator
state, but it is initialised during vCPU initialisation. This change therefore
adds a check to ensure memory for it is only allocated once.

Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
Link: https://lore.kernel.org/r/20241105155800.5461-4-phil@philjordan.eu
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Phil Dennis-Jordan 2024-11-05 16:57:58 +01:00 committed by Paolo Bonzini
parent e3150028ff
commit 3a75ba650c

View File

@ -239,7 +239,9 @@ int hvf_arch_init_vcpu(CPUState *cpu)
init_emu(); init_emu();
init_decoder(); init_decoder();
hvf_state->hvf_caps = g_new0(struct hvf_vcpu_caps, 1); if (hvf_state->hvf_caps == NULL) {
hvf_state->hvf_caps = g_new0(struct hvf_vcpu_caps, 1);
}
env->hvf_mmio_buf = g_new(char, 4096); env->hvf_mmio_buf = g_new(char, 4096);
if (x86cpu->vmware_cpuid_freq) { if (x86cpu->vmware_cpuid_freq) {