[libvirt] [PATCH 01/11] qemu: Fix switch() statements for virDomainIOMMUModel

Andrea Bolognani posted 11 patches 6 years, 8 months ago
[libvirt] [PATCH 01/11] qemu: Fix switch() statements for virDomainIOMMUModel
Posted by Andrea Bolognani 6 years, 8 months ago
Ensure unexpected values are dealt with correctly, that
is by invoking virReportEnumRangeError() and immediately
returning a negative value to the caller.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
 src/qemu/qemu_command.c | 10 ++++++++--
 src/qemu/qemu_domain.c  |  1 +
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 5bf6c704e0..fcc6caf42f 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6961,8 +6961,12 @@ qemuBuildIOMMUCommandLine(virCommandPtr cmd,
             virBufferAsprintf(&opts, ",device-iotlb=%s",
                               virTristateSwitchTypeToString(iommu->iotlb));
         }
-    case VIR_DOMAIN_IOMMU_MODEL_LAST:
         break;
+
+    case VIR_DOMAIN_IOMMU_MODEL_LAST:
+    default:
+        virReportEnumRangeError(virDomainIOMMUModel, iommu->model);
+        return -1;
     }
     virCommandAddArg(cmd, "-device");
     virCommandAddArgBuffer(cmd, &opts);
@@ -7609,7 +7613,9 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
             virBufferAddLit(&buf, ",iommu=on");
             break;
         case VIR_DOMAIN_IOMMU_MODEL_LAST:
-            break;
+        default:
+            virReportEnumRangeError(virDomainIOMMUModel, def->iommu->model);
+            return -1;
         }
     }
 
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index e50e84a3b2..366ebe1604 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -6138,6 +6138,7 @@ qemuDomainDeviceDefValidateIOMMU(const virDomainIOMMUDef *iommu,
     case VIR_DOMAIN_IOMMU_MODEL_LAST:
     default:
         virReportEnumRangeError(virDomainIOMMUModel, iommu->model);
+        return -1;
     }
 
     return 0;
-- 
2.21.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 01/11] qemu: Fix switch() statements for virDomainIOMMUModel
Posted by Ján Tomko 6 years, 8 months ago
On Tue, May 28, 2019 at 05:28:54PM +0200, Andrea Bolognani wrote:
>Ensure unexpected values are dealt with correctly, that
>is by invoking virReportEnumRangeError() and immediately
>returning a negative value to the caller.
>
>Signed-off-by: Andrea Bolognani <abologna@redhat.com>
>---
> src/qemu/qemu_command.c | 10 ++++++++--
> src/qemu/qemu_domain.c  |  1 +
> 2 files changed, 9 insertions(+), 2 deletions(-)
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list