On 09/18/2018 02:48 PM, Fabiano FidĂȘncio wrote:
Signed-off-by: Fabiano FidĂȘncio <fidencio(a)redhat.com>
---
src/xenconfig/xen_common.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/xenconfig/xen_common.c b/src/xenconfig/xen_common.c
index 9ad081e56b..a6e77a9250 100644
--- a/src/xenconfig/xen_common.c
+++ b/src/xenconfig/xen_common.c
@@ -605,8 +605,10 @@ xenParseCPUFeatures(virConfPtr conf,
static int
xenParseVfb(virConfPtr conf, virDomainDefPtr def)
{
+ int ret = -1;
int val;
char *listenAddr = NULL;
+ char **vfbs = NULL;
int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
virConfValuePtr list;
virDomainGraphicsDefPtr graphics = NULL;
@@ -664,17 +666,14 @@ 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) {
+ if (virConfGetValueStringList(conf, "vfb", false, &vfbs) == 1) {
There needs to be an else that will do some of the similar checking
described in the previous patch...
At the very least if return < 0, then virResetLastError... In fact now
that I see the same pattern, the code described in the last patch should
be a some common local/static function used by the 3 consumers to handle
the case where rc is not 1.
John
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;
}
@@ -747,12 +746,13 @@ xenParseVfb(virConfPtr conf, virDomainDefPtr def)
}
}
- return 0;
+ ret = 0;
cleanup:
virDomainGraphicsDefFree(graphics);
VIR_FREE(listenAddr);
- return -1;
+ virStringListFree(vfbs);
+ return ret;
}