提交 11f6cc32 编写于 作者: J Jim Meyering

xm_internal.c: remove misleading dead code

* src/xen/xm_internal.c (xenXMConfigGetULong): Remove useless and
misleading test (always false) for val->str == NULL before code that
always dereferences val->str.  "val" comes from virConfGetValue, and
at that point, val->str is guaranteed to be non-NULL.
(xenXMConfigGetBool): Likewise.
* src/util/conf.c (virConfSetValue): Ensure that vir->str is never NULL,
not even if someone tries to set such a value via virConfSetValue.
上级 d37bca86
...@@ -858,6 +858,9 @@ virConfSetValue (virConfPtr conf, ...@@ -858,6 +858,9 @@ virConfSetValue (virConfPtr conf,
{ {
virConfEntryPtr cur, prev = NULL; virConfEntryPtr cur, prev = NULL;
if (value && value->type == VIR_CONF_STRING && value->str == NULL)
return -1;
cur = conf->entries; cur = conf->entries;
while (cur != NULL) { while (cur != NULL) {
if ((cur->name != NULL) && (STREQ(cur->name, setting))) { if ((cur->name != NULL) && (STREQ(cur->name, setting))) {
......
...@@ -152,9 +152,6 @@ static int xenXMConfigGetBool(virConnectPtr conn, ...@@ -152,9 +152,6 @@ static int xenXMConfigGetBool(virConnectPtr conn,
if (val->type == VIR_CONF_LONG) { if (val->type == VIR_CONF_LONG) {
*value = val->l ? 1 : 0; *value = val->l ? 1 : 0;
} else if (val->type == VIR_CONF_STRING) { } else if (val->type == VIR_CONF_STRING) {
if (!val->str) {
*value = def;
}
*value = STREQ(val->str, "1") ? 1 : 0; *value = STREQ(val->str, "1") ? 1 : 0;
} else { } else {
xenXMError(conn, VIR_ERR_INTERNAL_ERROR, xenXMError(conn, VIR_ERR_INTERNAL_ERROR,
...@@ -183,9 +180,6 @@ static int xenXMConfigGetULong(virConnectPtr conn, ...@@ -183,9 +180,6 @@ static int xenXMConfigGetULong(virConnectPtr conn,
*value = val->l; *value = val->l;
} else if (val->type == VIR_CONF_STRING) { } else if (val->type == VIR_CONF_STRING) {
char *ret; char *ret;
if (!val->str) {
*value = def;
}
*value = strtol(val->str, &ret, 10); *value = strtol(val->str, &ret, 10);
if (ret == val->str) { if (ret == val->str) {
xenXMError(conn, VIR_ERR_INTERNAL_ERROR, xenXMError(conn, VIR_ERR_INTERNAL_ERROR,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册