[PATCH 03/17] virDomainVcpuParse: Assign default vcpus count based on return value of virXMLPropUInt

Peter Krempa pkrempa at redhat.com
Thu May 6 15:30:55 UTC 2021


Assign the vcpu count when virXMLPropUInt returns '0' meaning that the
cpu count was not present in the XML. This will allow to always
initialize the value of @result in virXMLPropUInt to prevent use of
uninitialized values.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/conf/domain_conf.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f536630d72..a2dd7d649f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -18030,6 +18030,7 @@ virDomainVcpuParse(virDomainDef *def,
     unsigned int vcpus;
     g_autofree char *tmp = NULL;
     g_autofree xmlNodePtr *nodes = NULL;
+    int rc;

     vcpus = maxvcpus = 1;

@@ -18044,10 +18045,11 @@ virDomainVcpuParse(virDomainDef *def,
         }
         VIR_FREE(tmp);

-        vcpus = maxvcpus;
-
-        if (virXMLPropUInt(vcpuNode, "current", 10, VIR_XML_PROP_NONE, &vcpus) < 0)
+        if ((rc = virXMLPropUInt(vcpuNode, "current", 10, VIR_XML_PROP_NONE, &vcpus)) < 0) {
             return -1;
+        } else if (rc == 0) {
+            vcpus = maxvcpus;
+        }

         def->placement_mode = VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC;
         if (virXMLPropEnum(vcpuNode, "placement",
-- 
2.30.2




More information about the libvir-list mailing list