]> xenbits.xensource.com Git - libvirt.git/commitdiff
xen_common: Change xenParseVfbs to use virConfGetValueStringList
authorFabiano FidĂȘncio <fidencio@redhat.com>
Thu, 20 Sep 2018 13:28:51 +0000 (15:28 +0200)
committerJohn Ferlan <jferlan@redhat.com>
Thu, 20 Sep 2018 20:39:16 +0000 (16:39 -0400)
Signed-off-by: Fabiano FidĂȘncio <fidencio@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
src/xenconfig/xen_common.c

index ed3d89c2c6d80a6c4efd18d692932e7da06a6bdc..9cb3070d47db7f1494ec6ac6e91d36399857c5b1 100644 (file)
@@ -615,7 +615,6 @@ xenParseVfb(virConfPtr conf, virDomainDefPtr def)
     int val;
     char *listenAddr = NULL;
     int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
-    virConfValuePtr list;
     virDomainGraphicsDefPtr graphics = NULL;
 
     if (hvm) {
@@ -671,17 +670,17 @@ xenParseVfb(virConfPtr conf, virDomainDefPtr def)
     }
 
     if (!hvm && def->graphics == NULL) { /* New PV guests use this format */
-        list = virConfGetValue(conf, "vfb");
-        if (list && list->type == VIR_CONF_LIST &&
-            list->list && list->list->type == VIR_CONF_STRING &&
-            list->list->str) {
+        VIR_AUTOPTR(virString) vfbs = NULL;
+        int rc;
+
+        if ((rc = virConfGetValueStringList(conf, "vfb", false, &vfbs)) == 1) {
             char vfb[MAX_VFB];
             char *key = vfb;
 
-            if (virStrcpyStatic(vfb, list->list->str) < 0) {
+            if (virStrcpyStatic(vfb, *vfbs) < 0) {
                 virReportError(VIR_ERR_INTERNAL_ERROR,
                                _("VFB %s too big for destination"),
-                               list->list->str);
+                               *vfbs);
                 goto cleanup;
             }
 
@@ -751,6 +750,9 @@ xenParseVfb(virConfPtr conf, virDomainDefPtr def)
             def->graphics[0] = graphics;
             def->ngraphics = 1;
             graphics = NULL;
+        } else {
+            if (xenHandleConfGetValueStringListErrors(rc) < 0)
+                goto cleanup;
         }
     }