On Mon, Dec 14, 2009 at 09:40:59PM +0100, Jim Meyering wrote:
This code triggered a warning about possible NULL-dereference. Actually it's more about being self-contradictory, since the NULL-dereference is not possible.
From 796e3a3254cb08fc20bce790997b5787dab51902 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@redhat.com> Date: Mon, 14 Dec 2009 21:37:54 +0100 Subject: [PATCH] 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.
It isn't entirely clear to me that the virConf class guarnetees val->str to be non-NULL.
--- src/xen/xm_internal.c | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c index 3dc655b..944d5d5 100644 --- a/src/xen/xm_internal.c +++ b/src/xen/xm_internal.c @@ -152,9 +152,6 @@ static int xenXMConfigGetBool(virConnectPtr conn, if (val->type == VIR_CONF_LONG) { *value = val->l ? 1 : 0; } else if (val->type == VIR_CONF_STRING) { - if (!val->str) { - *value = def; - } *value = STREQ(val->str, "1") ? 1 : 0;
I'd just add in 'else' here instead of removing it
} else { xenXMError(conn, VIR_ERR_INTERNAL_ERROR, @@ -183,9 +180,6 @@ static int xenXMConfigGetULong(virConnectPtr conn, *value = val->l; } else if (val->type == VIR_CONF_STRING) { char *ret; - if (!val->str) { - *value = def; - } *value = strtol(val->str, &ret, 10); if (ret == val->str) { xenXMError(conn, VIR_ERR_INTERNAL_ERROR, --
Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|