1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

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
(cherry picked from commit c5d2984c4270d257a5c01c236ca086162fd2849d)
This commit is contained in:
Guido Günther 2011-10-06 12:42:39 +02:00 committed by Cole Robinson
parent 4f5f16eea9
commit 0f1bc306d3

View File

@ -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