]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vbox: Don't leak virGetUserDirectory()'s output
authorFabiano Fidêncio <fidencio@redhat.com>
Thu, 19 Dec 2019 08:13:00 +0000 (09:13 +0100)
committerFabiano Fidêncio <fidencio@redhat.com>
Fri, 20 Dec 2019 08:38:43 +0000 (09:38 +0100)
On vboxStorageVolCreateXML(), virGetUserDirectory() was called without
freeing its content later on.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/vbox/vbox_storage.c

index 790b0e49972b7174c823f6ad8d0bd27017cf9562..7f240c5333b8f7d54d40c36e052727dc29938810 100644 (file)
@@ -410,6 +410,7 @@ vboxStorageVolCreateXML(virStoragePoolPtr pool,
     resultCodeUnion resultCode;
     virStorageVolPtr ret = NULL;
     g_autoptr(virStorageVolDef) def = NULL;
+    g_autofree char *homedir = NULL;
 
     if (!data->vboxObj)
         return ret;
@@ -442,8 +443,10 @@ vboxStorageVolCreateXML(virStoragePoolPtr pool,
     }
 
     /* If target.path isn't given, use default path ~/.VirtualBox/image_name */
-    if (!def->target.path)
-        def->target.path = g_strdup_printf("%s/.VirtualBox/%s", virGetUserDirectory(), def->name);
+    if (!def->target.path) {
+        homedir = virGetUserDirectory();
+        def->target.path = g_strdup_printf("%s/.VirtualBox/%s", homedir, def->name);
+    }
     VBOX_UTF8_TO_UTF16(def->target.path, &hddNameUtf16);
 
     if (!hddFormatUtf16 || !hddNameUtf16)