[libvirt] [PATCH 3/7] qemu: Validate spapr-vio addresses

Andrea Bolognani abologna at redhat.com
Fri Jun 14 11:23:27 UTC 2019


According to sPAPR, addresses are 32-bit rather than 64-bit.
Update qemuDomainDeviceDefValidateAddress() accordingly.

https://bugzilla.redhat.com/show_bug.cgi?id=1598657

Signed-off-by: Andrea Bolognani <abologna at redhat.com>
---
 src/qemu/qemu_domain.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 76963d1c5a..abc8809b56 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -6203,11 +6203,24 @@ qemuDomainDeviceDefValidateAddress(const virDomainDeviceDef *dev,
          * didn't specify one themselves */
         break;
 
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO: {
+        virDomainDeviceSpaprVioAddressPtr addr = &(info->addr.spaprvio);
+
+        if (addr->has_reg && addr->reg > 0xffffffff) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("spapr-vio reg='0x%llx' exceeds maximum "
+                             "possible value (0xffffffff)"),
+                           addr->reg);
+            return -1;
+        }
+
+        break;
+        }
+
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB:
-    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO:
-- 
2.21.0




More information about the libvir-list mailing list