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:
parent
4f5f16eea9
commit
0f1bc306d3
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user