diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 9d8eabb42afbf2420207ae39cb7178c83bc71de1..5f2b1f68b57bebf264725089fdd216b6d6e6219b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -28589,6 +28589,15 @@ virDomainDefCompatibleDevice(virDomainDefPtr def, if (oldDev) data.oldInfo = virDomainDeviceGetInfo(oldDev); + if (action == VIR_DOMAIN_DEVICE_ACTION_ATTACH && + data.newInfo && + data.newInfo->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE && + virDomainDefHasDeviceAddress(def, data.newInfo)) { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("Domain already contains a device with the same address")); + return -1; + } + if (action == VIR_DOMAIN_DEVICE_ACTION_UPDATE && live && (data.newInfo && data.oldInfo &&