[PATCH] qemu: Avoid memory leak in virQEMUCapsCPUDefsToModels

The @vendor variable inside virQEMUCapsCPUDefsToModels() is allocated, but never freed. But there is actually no need for it to be allocated, because it merely passes a retval of virCPUGetVendorForModel() (which returns a const string) to virDomainCapsCPUModelsAdd() (which ten accepts the argument as const string). Therefore, drop the g_strdup() call and fix the type of the variable. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_capabilities.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 6f3ff7f43f..04b2eef215 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2189,7 +2189,7 @@ virQEMUCapsCPUDefsToModels(virArch arch, for (i = 0; i < defs->ncpus; i++) { qemuMonitorCPUDefInfo *cpu = defs->cpus + i; - char *vendor = NULL; + const char *vendor = NULL; if (modelAllowed && !g_strv_contains(modelAllowed, cpu->name)) continue; @@ -2198,7 +2198,7 @@ virQEMUCapsCPUDefsToModels(virArch arch, continue; if (vendors) - vendor = g_strdup(virCPUGetVendorForModel(arch, cpu->name)); + vendor = virCPUGetVendorForModel(arch, cpu->name); virDomainCapsCPUModelsAdd(cpuModels, cpu->name, cpu->usable, cpu->blockers, cpu->deprecated, vendor); -- 2.35.1

On Mon, Oct 10, 2022 at 15:39:35 +0200, Michal Privoznik wrote:
The @vendor variable inside virQEMUCapsCPUDefsToModels() is allocated, but never freed. But there is actually no need for it to be allocated, because it merely passes a retval of virCPUGetVendorForModel() (which returns a const string) to virDomainCapsCPUModelsAdd() (which ten accepts the argument as const string). Therefore, drop the g_strdup() call and fix the type of the variable.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_capabilities.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 6f3ff7f43f..04b2eef215 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2189,7 +2189,7 @@ virQEMUCapsCPUDefsToModels(virArch arch,
for (i = 0; i < defs->ncpus; i++) { qemuMonitorCPUDefInfo *cpu = defs->cpus + i; - char *vendor = NULL; + const char *vendor = NULL;
if (modelAllowed && !g_strv_contains(modelAllowed, cpu->name)) continue; @@ -2198,7 +2198,7 @@ virQEMUCapsCPUDefsToModels(virArch arch, continue;
if (vendors) - vendor = g_strdup(virCPUGetVendorForModel(arch, cpu->name)); + vendor = virCPUGetVendorForModel(arch, cpu->name);
virDomainCapsCPUModelsAdd(cpuModels, cpu->name, cpu->usable, cpu->blockers, cpu->deprecated, vendor);
Oops, right g_strdup is called on vendor in virDomainCapsCPUModelsAdd. Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
participants (2)
-
Jiri Denemark
-
Michal Privoznik