49 lines
1.8 KiB
Diff
49 lines
1.8 KiB
Diff
From 0069becf07a5a9751b5ee202af928e4398c7fca9 Mon Sep 17 00:00:00 2001
|
|
From: Michal Privoznik <mprivozn@redhat.com>
|
|
Date: Tue, 9 Feb 2021 16:29:39 +0100
|
|
Subject: [PATCH 088/108] qemu_capabilities: Don't leak @str in
|
|
virQEMUCapsLoadMachines()
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
If parsing "maxCpus" attribute of <machine/> element fails an
|
|
error is printed but the corresponding string is not freed. While
|
|
it is very unlikely to happen (parsed XML is not user provided
|
|
and we are the ones generating it), it is possible. Instead of
|
|
freeing the variable in the error path explicitly, let's declare
|
|
it as g_autofree. And while I'm at it, let's bring it into the
|
|
loop where it's used.
|
|
|
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
(cherry picked from commit 71609477a21c100d7ce6ef00c97c11093f3405bc)
|
|
---
|
|
src/qemu/qemu_capabilities.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
|
|
index 2931d0c190..790b67add3 100644
|
|
--- a/src/qemu/qemu_capabilities.c
|
|
+++ b/src/qemu/qemu_capabilities.c
|
|
@@ -3936,7 +3936,6 @@ virQEMUCapsLoadMachines(virQEMUCapsAccelPtr caps,
|
|
{
|
|
g_autofree char *xpath = g_strdup_printf("./machine[@type='%s']", typeStr);
|
|
g_autofree xmlNodePtr *nodes = NULL;
|
|
- char *str = NULL;
|
|
size_t i;
|
|
int n;
|
|
|
|
@@ -3954,6 +3953,8 @@ virQEMUCapsLoadMachines(virQEMUCapsAccelPtr caps,
|
|
return -1;
|
|
|
|
for (i = 0; i < n; i++) {
|
|
+ g_autofree char *str = NULL;
|
|
+
|
|
if (!(caps->machineTypes[i].name = virXMLPropString(nodes[i], "name"))) {
|
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
_("missing machine name in QEMU capabilities cache"));
|
|
--
|
|
2.33.0
|
|
|