mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 21:15:20 +00:00
conf: reject duplicate paths in device weights
The next patch will make it possible to have virDomainSetBlkioParameters leave device weights unchanged if they are not mentioned in the incoming string, but this only works if the list of block weights does not allow duplicate paths. Technically, a user can still confuse libvirt by passing alternate spellings that resolve to the same device, but it is not worth worrying about working around that kind of abuse. * src/conf/domain_conf.c (virDomainDefParseXML): Require unique paths.
This commit is contained in:
parent
7e976db4ea
commit
9b524ff040
@ -6969,10 +6969,20 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
||||
goto no_memory;
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
int j;
|
||||
if (virDomainBlkioDeviceWeightParseXML(nodes[i],
|
||||
&def->blkio.devices[i]) < 0)
|
||||
goto error;
|
||||
def->blkio.ndevices++;
|
||||
for (j = 0; j < i; j++) {
|
||||
if (STREQ(def->blkio.devices[j].path,
|
||||
def->blkio.devices[i].path)) {
|
||||
virDomainReportError(VIR_ERR_XML_ERROR,
|
||||
_("duplicate device weight path '%s'"),
|
||||
def->blkio.devices[i].path);
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
}
|
||||
VIR_FREE(nodes);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user