]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Fix switch() statements for virDomainIOMMUModel
authorAndrea Bolognani <abologna@redhat.com>
Tue, 28 May 2019 10:35:42 +0000 (12:35 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Mon, 3 Jun 2019 15:40:24 +0000 (17:40 +0200)
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>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_command.c
src/qemu/qemu_domain.c

index 5bf6c704e073fbc1e0ca93bc337064f6718aa3e1..fcc6caf42f86d486582d0b982a0824f364dd7d06 100644 (file)
@@ -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;
         }
     }
 
index e50e84a3b2eed10252480ee2c3e4c593405ef197..366ebe1604c9859820d2e560d947e8f6d5203260 100644 (file)
@@ -6138,6 +6138,7 @@ qemuDomainDeviceDefValidateIOMMU(const virDomainIOMMUDef *iommu,
     case VIR_DOMAIN_IOMMU_MODEL_LAST:
     default:
         virReportEnumRangeError(virDomainIOMMUModel, iommu->model);
+        return -1;
     }
 
     return 0;