From: John Ferlan Date: Thu, 18 Jun 2015 20:00:53 +0000 (-0400) Subject: conf: Don't allow duplicated target names regardless of bus X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=2e09729b1c1cc0096be4edd2d939bf1044aec506;p=libvirt.git conf: Don't allow duplicated target names regardless of bus https://bugzilla.redhat.com/show_bug.cgi?id=1142631 Commit id 'e0e290552' added a check to determine if the same bus had the same target value. It seems that's not quite good enough as the check should check the target name value regardless of bus type. Also added a DO_TEST_DIFFERENT to exhibit the issue --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4ed354c907..0219c3c481 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -12658,8 +12658,7 @@ virDomainDiskDefDstDuplicates(virDomainDefPtr def) for (i = 1; i < def->ndisks; i++) { for (j = 0; j < i; j++) { - if (def->disks[i]->bus == def->disks[j]->bus && - STREQ(def->disks[i]->dst, def->disks[j]->dst)) { + if (STREQ(def->disks[i]->dst, def->disks[j]->dst)) { virReportError(VIR_ERR_XML_ERROR, _("target '%s' duplicated for disk sources " "'%s' and '%s'"), diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-same-targets.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-same-targets.xml new file mode 100644 index 0000000000..3276ce5877 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-same-targets.xml @@ -0,0 +1,35 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu + + + + + + + + + + + + + + + + + + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 24c1f301e4..f5cbe3a17c 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -903,6 +903,9 @@ mymain(void) QEMU_CAPS_DEVICE); DO_TEST("disk-snapshot", QEMU_CAPS_DRIVE, QEMU_CAPS_DRIVE_CACHE_V2, QEMU_CAPS_DRIVE_FORMAT); + DO_TEST_FAILURE("disk-same-targets", + QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE, QEMU_CAPS_SCSI_LSI, + QEMU_CAPS_DEVICE_USB_STORAGE, QEMU_CAPS_NODEFCONFIG); DO_TEST("event_idx", QEMU_CAPS_DRIVE, QEMU_CAPS_VIRTIO_BLK_EVENT_IDX,