[libvirt PATCH 0/2] fix a leak in virQEMUDriverConfigLoadMemoryEntry

Thanks to valgrind Ján Tomko (2): qemu: do not leak the directory in virQEMUDriverConfigLoadMemoryEntry qemu: only return two values in virQEMUDriverConfigLoadMemoryEntry src/qemu/qemu_conf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.25.4

virConfGetValueString returns an allocated string that needs to be freed. Fixes: 34a59fb570dcc1b6b4b4cef1f0eb43fc6f688120 Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_conf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 2d5e527b47..2d4e2a46f3 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -969,7 +969,7 @@ static int virQEMUDriverConfigLoadMemoryEntry(virQEMUDriverConfigPtr cfg, virConfPtr conf) { - char *dir = NULL; + g_autofree char *dir = NULL; int rc; if ((rc = virConfGetValueString(conf, "memory_backing_dir", &dir)) < 0) { -- 2.25.4

The intention of these split Load*Entry functions is to prevent virQEMUDriverConfigLoadFile from getting too large. There's no need to signal to the caller whether an entry was found or not, only whether there was an error. Remove the non-standard return 1. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_conf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 2d4e2a46f3..b49299e1de 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -977,7 +977,7 @@ virQEMUDriverConfigLoadMemoryEntry(virQEMUDriverConfigPtr cfg, } else if (rc > 0) { VIR_FREE(cfg->memoryBackingDir); cfg->memoryBackingDir = g_strdup_printf("%s/libvirt/qemu", dir); - return 1; + return 0; } return 0; -- 2.25.4

On 5/18/20 10:40 AM, Ján Tomko wrote:
Thanks to valgrind
Ján Tomko (2): qemu: do not leak the directory in virQEMUDriverConfigLoadMemoryEntry qemu: only return two values in virQEMUDriverConfigLoadMemoryEntry
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/qemu/qemu_conf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
participants (2)
-
Daniel Henrique Barboza
-
Ján Tomko