VIR_DOMAIN_XML_INACTIVE)))
goto error;
- if (xmlin) {
- virDomainDefPtr tmp;
-
- if (!(tmp = qemuDomainSaveImageUpdateDef(driver, def, xmlin)))
- goto error;
-
- virDomainDefFree(def);
- def = tmp;
- }
-
if (xmlout)
*xmlout = xml;
else
{
virQEMUDriverPtr driver = conn->privateData;
virDomainDefPtr def = NULL;
+ virDomainDefPtr newdef = NULL;
virDomainObjPtr vm = NULL;
int fd = -1;
int ret = -1;
if (virDomainRestoreFlagsEnsureACL(conn, def) < 0)
goto cleanup;
+ if (dxml) {
+ if (!(newdef = qemuDomainSaveImageUpdateDef(driver, def, dxml)))
+ goto cleanup;
+
+ virDomainDefFree(def);
+ def = newdef;
+ }
+
if (!(vm = virDomainObjListAdd(driver->domains, def,
driver->xmlopt,
VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
virQEMUDriverPtr driver = conn->privateData;
int ret = -1;
virDomainDefPtr def = NULL;
+ virDomainDefPtr newdef = NULL;
int fd = -1;
virQEMUSaveHeader header;
char *xml = NULL;
if (virDomainSaveImageDefineXMLEnsureACL(conn, def) < 0)
goto cleanup;
- xml = qemuDomainDefFormatXML(driver, def,
+ if (!(newdef = qemuDomainSaveImageUpdateDef(driver, def, dxml)))
+ goto cleanup;
+
+ xml = qemuDomainDefFormatXML(driver, newdef,
VIR_DOMAIN_XML_INACTIVE |
VIR_DOMAIN_XML_SECURE |
VIR_DOMAIN_XML_MIGRATABLE);
cleanup:
virDomainDefFree(def);
+ virDomainDefFree(newdef);
VIR_FORCE_CLOSE(fd);
VIR_FREE(xml);
return ret;