From: Andrea Bolognani Date: Tue, 28 May 2019 10:35:42 +0000 (+0200) Subject: qemu: Fix switch() statements for virDomainIOMMUModel X-Git-Tag: v5.5.0-rc1~368 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dfa631b55a8465ad4234406d2df984bcd61459dc;p=thirdparty%2Flibvirt.git qemu: Fix switch() statements for virDomainIOMMUModel 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 Reviewed-by: Ján Tomko --- 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;