[PATCH 10/10] virDomainControllerDefParseXML: Reject '-1' for PCI controller target properties

Peter Krempa pkrempa at redhat.com
Fri Aug 26 12:20:05 UTC 2022


All of the properties use '-1' as default and the code omits formatting
them when the property is '-1'. Additionally subsequent validation code
rejects all other negative values anyways.

Since we've never formatted '-1' into an XML formatted by libvirt we can
make the parser more strict, as we will never fail to parse existing
on-disk libvirt-owned XMLs.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2121627
Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/conf/domain_conf.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index a4384f9d13..65afebbfde 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8205,22 +8205,22 @@ virDomainControllerDefParseXML(virDomainXMLOption *xmlopt,

     if (ntargetNodes == 1) {
         if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) {
-            if (virXMLPropInt(targetNodes[0], "chassisNr", 0, VIR_XML_PROP_NONE,
+            if (virXMLPropInt(targetNodes[0], "chassisNr", 0, VIR_XML_PROP_NONNEGATIVE,
                               &def->opts.pciopts.chassisNr,
                               def->opts.pciopts.chassisNr) < 0)
                 return NULL;

-            if (virXMLPropInt(targetNodes[0], "chassis", 0, VIR_XML_PROP_NONE,
+            if (virXMLPropInt(targetNodes[0], "chassis", 0, VIR_XML_PROP_NONNEGATIVE,
                               &def->opts.pciopts.chassis,
                               def->opts.pciopts.chassis) < 0)
                 return NULL;

-            if (virXMLPropInt(targetNodes[0], "port", 0, VIR_XML_PROP_NONE,
+            if (virXMLPropInt(targetNodes[0], "port", 0, VIR_XML_PROP_NONNEGATIVE,
                               &def->opts.pciopts.port,
                               def->opts.pciopts.port) < 0)
                 return NULL;

-            if (virXMLPropInt(targetNodes[0], "busNr", 0, VIR_XML_PROP_NONE,
+            if (virXMLPropInt(targetNodes[0], "busNr", 0, VIR_XML_PROP_NONNEGATIVE,
                               &def->opts.pciopts.busNr,
                               def->opts.pciopts.busNr) < 0)
                 return NULL;
-- 
2.37.1



More information about the libvir-list mailing list