From c5d2984c4270d257a5c01c236ca086162fd2849d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Thu, 6 Oct 2011 12:42:39 +0200 Subject: [PATCH] xen: add error handling to UUID parsing otherwise a missing UUID in a domain config just shows: error: An error occurred, but the cause is unknown Now we have: error: configuration file syntax error: config value uuid was missing --- src/xenxs/xen_xm.c | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c index 70facf78d9..ff173d8de3 100644 --- a/src/xenxs/xen_xm.c +++ b/src/xenxs/xen_xm.c @@ -174,21 +174,38 @@ static int xenXMConfigCopyStringOpt(virConfPtr conf, /* Convenience method to grab a string UUID from the config file object */ static int xenXMConfigGetUUID(virConfPtr conf, const char *name, unsigned char *uuid) { virConfValuePtr val; - if (!uuid || !name || !conf) - return (-1); - if (!(val = virConfGetValue(conf, name))) { - return (-1); + + if (!uuid || !name || !conf) { + XENXS_ERROR(VIR_ERR_INVALID_ARG, + _("Arguments must be non null")); + return -1; } - if (val->type != VIR_CONF_STRING) - return (-1); - if (!val->str) - return (-1); + if (!(val = virConfGetValue(conf, name))) { + XENXS_ERROR(VIR_ERR_CONF_SYNTAX, + _("config value %s was missing"), name); + return -1; + } - if (virUUIDParse(val->str, uuid) < 0) - return (-1); + if (val->type != VIR_CONF_STRING) { + XENXS_ERROR(VIR_ERR_CONF_SYNTAX, + _("config value %s not a string"), name); + return -1; + } - return (0); + if (!val->str) { + XENXS_ERROR(VIR_ERR_CONF_SYNTAX, + _("%s can't be empty"), name); + return -1; + } + + if (virUUIDParse(val->str, uuid) < 0) { + XENXS_ERROR(VIR_ERR_CONF_SYNTAX, + _("%s not parseable"), val->str); + return -1; + } + + return 0; } #define MAX_VFB 1024