mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-05 22:05:47 +00:00
src: Access hostdev->source.subsys iff VIR_DOMAIN_HOSTDEV_MODE_SUBSYS
There are few places where a virDomainHostdevDef->source.subsys is accessed without ->mode being checked. Mind you, virDomainHostdevDef can be also in VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES mode. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
d406caefd1
commit
620b8ead8b
@ -5099,7 +5099,8 @@ virDomainDriveAddressIsUsedByHostdev(const virDomainDef *def,
|
|||||||
for (i = 0; i < def->nhostdevs; i++) {
|
for (i = 0; i < def->nhostdevs; i++) {
|
||||||
hostdev = def->hostdevs[i];
|
hostdev = def->hostdevs[i];
|
||||||
|
|
||||||
if (hostdev->source.subsys.type != type ||
|
if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
|
||||||
|
hostdev->source.subsys.type != type ||
|
||||||
hostdev->info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE)
|
hostdev->info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -1283,7 +1283,8 @@ virDomainDefHostdevValidate(const virDomainDef *def)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV &&
|
if (dev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
||||||
|
dev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV &&
|
||||||
dev->source.subsys.u.mdev.ramfb == VIR_TRISTATE_SWITCH_ON) {
|
dev->source.subsys.u.mdev.ramfb == VIR_TRISTATE_SWITCH_ON) {
|
||||||
if (ramfbEnabled) {
|
if (ramfbEnabled) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
@ -1049,6 +1049,10 @@ get_files(vahControl * ctl)
|
|||||||
if (ctl->def->hostdevs[i]) {
|
if (ctl->def->hostdevs[i]) {
|
||||||
virDomainHostdevDef *dev = ctl->def->hostdevs[i];
|
virDomainHostdevDef *dev = ctl->def->hostdevs[i];
|
||||||
virDomainHostdevSubsysUSB *usbsrc = &dev->source.subsys.u.usb;
|
virDomainHostdevSubsysUSB *usbsrc = &dev->source.subsys.u.usb;
|
||||||
|
|
||||||
|
if (dev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS)
|
||||||
|
continue;
|
||||||
|
|
||||||
switch (dev->source.subsys.type) {
|
switch (dev->source.subsys.type) {
|
||||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: {
|
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: {
|
||||||
virUSBDevice *usb =
|
virUSBDevice *usb =
|
||||||
|
Loading…
Reference in New Issue
Block a user