mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 13:05:27 +00:00
504262 Check for duplicated UUID in XM Xen defines
* src/xen/xm_internal.c: the XM driver was not checking for previously defined UUID on new defines. Similar to virDomainObjIsDuplicate() behaviour.
This commit is contained in:
parent
2060a0a43e
commit
776b675861
@ -2623,6 +2623,26 @@ virDomainPtr xenXMDomainDefineXML(virConnectPtr conn, const char *xml) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* check that if there is another domain defined with the same uuid
|
||||
* it has the same name
|
||||
*/
|
||||
if ((entry = virHashSearch(priv->configCache, xenXMDomainSearchForUUID,
|
||||
(const void *)&(def->uuid))) != NULL) {
|
||||
if ((entry->def != NULL) && (entry->def->name != NULL) &&
|
||||
(STRNEQ(def->name, entry->def->name))) {
|
||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||
|
||||
virUUIDFormat(entry->def->uuid, uuidstr);
|
||||
xenXMError(conn, VIR_ERR_OPERATION_FAILED,
|
||||
_("domain '%s' is already defined with uuid %s"),
|
||||
entry->def->name, uuidstr);
|
||||
entry = NULL;
|
||||
goto error;
|
||||
}
|
||||
entry = NULL;
|
||||
}
|
||||
|
||||
if (virHashLookup(priv->nameConfigMap, def->name)) {
|
||||
/* domain exists, we will overwrite it */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user