Move it into an independent block and move temporary variables locally.

Signed-off-by: Peter Krempa <pkre...@redhat.com>
---
 src/conf/domain_conf.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 390263d806..0e25d585c8 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8869,9 +8869,7 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
     g_autofree char *vhostuser_mode = NULL;
     g_autofree char *vhostuser_path = NULL;
     g_autofree char *vhostuser_type = NULL;
-    g_autofree char *vhost_path = NULL;
     g_autofree char *tap = NULL;
-    g_autofree char *vhost = NULL;
     g_autofree char *switchid = NULL;
     g_autofree char *connectionid = NULL;
     const char *prefix = xmlopt ? xmlopt->config.netPrefix : NULL;
@@ -9039,9 +9037,6 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
     if ((tap = virXPathString("string(./backend/@tap)", ctxt)))
         def->backend.tap = virFileSanitizePath(tap);

-    if ((vhost = virXPathString("string(./backend/@vhost)", ctxt)))
-        vhost_path = virFileSanitizePath(vhost);
-
     mac_node = virXPathNode("./mac", ctxt);

     if ((macaddr = virXMLPropString(mac_node, "address"))) {
@@ -9484,7 +9479,14 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
                                          &def->driver.virtio.guest.ufo) < 0)
                 return NULL;
         }
-        def->backend.vhost = g_steal_pointer(&vhost_path);
+    }
+
+    if (def->type != VIR_DOMAIN_NET_TYPE_HOSTDEV &&
+        virDomainNetIsVirtioModel(def)) {
+        g_autofree  char *vhost = virXPathString("string(./backend/@vhost)", 
ctxt);
+
+        if (vhost)
+            def->backend.vhost = virFileSanitizePath(vhost);
     }

     def->linkstate = VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DEFAULT;
-- 
2.37.1

Reply via email to