[PATCH] qemu: Avoid memory leak in virQEMUCapsCPUDefsToModels
Jiri Denemark
jdenemar at redhat.com
Mon Oct 10 13:46:51 UTC 2022
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 at 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 at redhat.com>
More information about the libvir-list
mailing list