From: Peter Krempa Date: Wed, 8 Nov 2017 14:42:51 +0000 (+0100) Subject: conf: Properly parse X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=19448a2561699807c075e071a45df292efd01f6b;p=libvirt.git conf: Properly parse The terminator would not be parsed properly since the XPath selector was looking for an populated element, and also the code did not bother assigning the terminating virStorageSourcePtr to the backingStore property of the parent. Some tests would catch it if there wasn't bigger fallout from the change to backing store termination in a693fdba0111. Fix them properly now. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1509110 --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 7dfd7b54e6..a1ca307c43 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8545,23 +8545,21 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt, char *idx = NULL; int ret = -1; - if (!(ctxt->node = virXPathNode("./backingStore[*]", ctxt))) { + if (!(ctxt->node = virXPathNode("./backingStore", ctxt))) { ret = 0; goto cleanup; } - if (!(type = virXMLPropString(ctxt->node, "type"))) { - /* terminator does not have a type */ - if (VIR_ALLOC(backingStore) < 0) - goto cleanup; + if (VIR_ALLOC(backingStore) < 0) + goto cleanup; + /* terminator does not have a type */ + if (!(type = virXMLPropString(ctxt->node, "type"))) { + VIR_STEAL_PTR(src->backingStore, backingStore); ret = 0; goto cleanup; } - if (VIR_ALLOC(backingStore) < 0) - goto cleanup; - if (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE) && (idx = virXMLPropString(ctxt->node, "index")) && virStrToLong_uip(idx, NULL, 10, &backingStore->id) < 0) { diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml index 9482b6794a..16caeb3542 100644 --- a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml +++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml @@ -22,6 +22,7 @@ + diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-active-commit.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-active-commit.xml index 5766e4aea8..cc26af1096 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-active-commit.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-active-commit.xml @@ -20,6 +20,7 @@ + diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-backing-chains-active.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-backing-chains-active.xml index 828defcc25..d1fd2442c3 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-backing-chains-active.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-backing-chains-active.xml @@ -49,6 +49,7 @@ + @@ -63,6 +64,7 @@ +
@@ -79,6 +81,7 @@ +
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-active.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-active.xml index 252bde3389..c1e8a33ec1 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-active.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-active.xml @@ -16,6 +16,7 @@ /usr/bin/qemu-system-i686 + @@ -24,12 +25,14 @@ +
+ @@ -39,6 +42,7 @@ + diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml index f4bd39a580..e390bc02f2 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml @@ -16,6 +16,7 @@ /usr/bin/qemu-system-i686 + @@ -24,12 +25,14 @@ +
+ @@ -39,6 +42,7 @@ +
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-seclabel-static-labelskip.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-seclabel-static-labelskip.xml index 91f573db7d..d37b950cbf 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-seclabel-static-labelskip.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-seclabel-static-labelskip.xml @@ -18,6 +18,7 @@ +