提交 0f1bc306 编写于 作者: G Guido Günther 提交者: Cole Robinson

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 c5d2984c)
上级 4f5f16ee
......@@ -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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册