diff --git a/src/vbox/vbox_storage.c b/src/vbox/vbox_storage.c index 790b0e49972b7174c823f6ad8d0bd27017cf9562..7f240c5333b8f7d54d40c36e052727dc29938810 100644 --- a/src/vbox/vbox_storage.c +++ b/src/vbox/vbox_storage.c @@ -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)