From: Luigi Leonardi <leonardi@redhat.com>
When memory_region_init_* fail, `igvm_pages` is not freed causing a leak.
Free `igvm_pages` in the error path.
Fixes: c1d466d267cf ("backends/igvm: Add IGVM loader and configuration")
Signed-off-by: Luigi Leonardi <leonardi@redhat.com>
Message-ID: <20260330-igvm_fixes-v1-2-03587a5a808b@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
backends/igvm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/backends/igvm.c b/backends/igvm.c
index 50f0d6fb9a7b..c347d0c17e7e 100644
--- a/backends/igvm.c
+++ b/backends/igvm.c
@@ -216,11 +216,13 @@ static void *qigvm_prepare_memory(QIgvm *ctx, uint64_t addr, uint64_t size,
ctx->machine_state->cgs->require_guest_memfd) {
if (!memory_region_init_ram_guest_memfd(igvm_pages, NULL,
region_name, size, errp)) {
+ g_free(igvm_pages);
return NULL;
}
} else {
if (!memory_region_init_ram(igvm_pages, NULL, region_name, size,
errp)) {
+ g_free(igvm_pages);
return NULL;
}
}
--
2.53.0