diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c index 70facf78d9b0c08421a38508e8ca4c14d49ac139..ff173d8de3bae95542fe8b06a87551348f90922e 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 (!uuid || !name || !conf) { + XENXS_ERROR(VIR_ERR_INVALID_ARG, + _("Arguments must be non null")); + return -1; + } + if (!(val = virConfGetValue(conf, name))) { - return (-1); + XENXS_ERROR(VIR_ERR_CONF_SYNTAX, + _("config value %s was missing"), name); + return -1; } - if (val->type != VIR_CONF_STRING) - return (-1); - if (!val->str) - return (-1); + if (val->type != VIR_CONF_STRING) { + XENXS_ERROR(VIR_ERR_CONF_SYNTAX, + _("config value %s not a string"), name); + return -1; + } + + if (!val->str) { + XENXS_ERROR(VIR_ERR_CONF_SYNTAX, + _("%s can't be empty"), name); + return -1; + } - if (virUUIDParse(val->str, uuid) < 0) - return (-1); + if (virUUIDParse(val->str, uuid) < 0) { + XENXS_ERROR(VIR_ERR_CONF_SYNTAX, + _("%s not parseable"), val->str); + return -1; + } - return (0); + return 0; } #define MAX_VFB 1024