From 7c2b32a69159a387bf070cf6f31b7efb98082581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Mon, 28 May 2018 00:28:21 +0200 Subject: [PATCH] xen_vm: convert to typesafe virConf accessors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fabiano Fidêncio Reviewed-by: Ján Tomko Signed-off-by: Ján Tomko --- src/xenconfig/xen_xm.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/xenconfig/xen_xm.c b/src/xenconfig/xen_xm.c index be50a13909..ef52cf4250 100644 --- a/src/xenconfig/xen_xm.c +++ b/src/xenconfig/xen_xm.c @@ -263,20 +263,20 @@ xenParseXMDisk(char *entry, int hvm) static int xenParseXMDiskList(virConfPtr conf, virDomainDefPtr def) { + char **disks = NULL, **entries; int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM; - virConfValuePtr list = virConfGetValue(conf, "disk"); + int ret = -1; + int rc; - if (!list || list->type != VIR_CONF_LIST) - return 0; + rc = virConfGetValueStringList(conf, "disk", false, &disks); + if (rc <= 0) + return rc; - for (list = list->list; list; list = list->next) { + for (entries = disks; *entries; entries++) { virDomainDiskDefPtr disk; - int rc; + char *entry = *entries; - if ((list->type != VIR_CONF_STRING) || (list->str == NULL)) - continue; - - if (!(disk = xenParseXMDisk(list->str, hvm))) + if (!(disk = xenParseXMDisk(entry, hvm))) continue; /* Maintain list in sorted order according to target device name */ @@ -284,10 +284,14 @@ xenParseXMDiskList(virConfPtr conf, virDomainDefPtr def) virDomainDiskDefFree(disk); if (rc < 0) - return -1; + goto cleanup; } - return 0; + ret = 0; + + cleanup: + virStringListFree(disks); + return ret; }