[libvirt] 2 patches: dead increment and 4 useless (always-false) disjuncts
Daniel P. Berrange
berrange at redhat.com
Thu Sep 10 09:43:27 UTC 2009
On Tue, Sep 08, 2009 at 10:35:07AM +0200, Daniel Veillard wrote:
> On Mon, Sep 07, 2009 at 06:33:13PM +0200, Jim Meyering wrote:
> > Daniel Veillard wrote:
> > > On Mon, Sep 07, 2009 at 05:37:24PM +0200, Jim Meyering wrote:
> > >>
> > >> >From 74f57af2010f9cbe2315d625c6502a0b259e6802 Mon Sep 17 00:00:00 2001
> > >> From: Jim Meyering <meyering at redhat.com>
> > >> Date: Mon, 7 Sep 2009 10:03:22 +0200
> > >> Subject: [PATCH 1/2] xm_internal.c: remove dead increment of "data"
> > >>
> > >> * src/xm_internal.c (xenXMDomainConfigParse): Don't increment it.
> > >> ---
> > >> src/xm_internal.c | 1 -
> > >> 1 files changed, 0 insertions(+), 1 deletions(-)
> > >>
> > >> diff --git a/src/xm_internal.c b/src/xm_internal.c
> > >> index f206c8c..18613d4 100644
> > >> --- a/src/xm_internal.c
> > >> +++ b/src/xm_internal.c
> > >> @@ -1314,7 +1314,6 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
> > >>
> > >> if (!(data = strchr(key, '=')) || (data[0] == '\0'))
> > >> break;
> > >> - data++;
> > >>
> > >> if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
> > >> if (STRPREFIX(key, "vncunused=")) {
> > >
> > > trivial, ACK
> > >
> > >> >From d4db2dfaafbf827d1c8b8626a3dbdaa9f371e479 Mon Sep 17 00:00:00 2001
> > >> From: Jim Meyering <meyering at redhat.com>
> > >> Date: Mon, 7 Sep 2009 10:09:20 +0200
> > >> Subject: [PATCH 2/2] xm_internal.c: remove four useless comparisons after strchr
> > >>
> > >> * src/xm_internal.c (xenXMDomainConfigParse): After t=strchr...
> > >> don't test *t; it's known. This was *not* detected by clang,
> > >> but I spotted it since once instance was in the vicinity of the
> > >> dead increment of "data".
> > >> ---
> > >> src/xm_internal.c | 8 ++++----
> > >> 1 files changed, 4 insertions(+), 4 deletions(-)
> > >>
> > >> diff --git a/src/xm_internal.c b/src/xm_internal.c
> > >> index 18613d4..e7f6a55 100644
> > >> --- a/src/xm_internal.c
> > >> +++ b/src/xm_internal.c
> > >> @@ -862,7 +862,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
> > >> */
> > >>
> > >> /* Extract the source file path*/
> > >> - if (!(offset = strchr(head, ',')) || offset[0] == '\0')
> > >> + if (!(offset = strchr(head, ',')))
> > >> goto skipdisk;
> > >> if ((offset - head) >= (PATH_MAX-1))
> > >> goto skipdisk;
> > >> @@ -882,7 +882,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
> > >> head = head + 6;
> > >>
> > >> /* Extract the dest device name */
> > >> - if (!(offset = strchr(head, ',')) || offset[0] == '\0')
> > >> + if (!(offset = strchr(head, ',')))
> > >> goto skipdisk;
> > >> if (VIR_ALLOC_N(disk->dst, (offset - head) + 1) < 0)
> > >> goto no_memory;
> > >> @@ -1018,7 +1018,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
> > >> char *data;
> > >> char *nextkey = strchr(key, ',');
> > >>
> > >> - if (!(data = strchr(key, '=')) || (data[0] == '\0'))
> > >> + if (!(data = strchr(key, '=')))
> > >> goto skipnic;
> > >> data++;
> > >>
> > >> @@ -1312,7 +1312,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
> > >> nextkey++;
> > >> }
> > >>
> > >> - if (!(data = strchr(key, '=')) || (data[0] == '\0'))
> > >> + if (!(data = strchr(key, '=')))
> > >> break;
> > >>
> > >> if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
> > >
> > > Hum, I would like to understand the intent of the person who wrote
> > > this first, it's like one s trying to handle a case where strchr( ,c)
> > > could return the pointer to the end of string if c is not found or
> > > something like that. Weird ...
> >
> > Dan?
> >
> > git show 1b0f541704d0172fdbc4c0e075b37dc2e196d4cc
> >
> > or visit this:
> > http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=1b0f541704d0172fdb
> >
> > e.g.,
> >
> > + /* Extract the source */
> > + if (!(offset = index(head, ',')) || offset[0] == '\0')
>
> Man index is a bit confusing as it uses NULL to designate the '\0'
> character at the end of the string and the NULL pointer. Maybe this led
> to some confusion,
>
> Your patch sounds right, and Dan probably don't remember the obscure
> details of that patch 2.5 years ago :-)
With the horrible 'xm' driver my policy is always that the test cases
are correct and the driver code is broken unless proven otherwise.
Regards,
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 :|
More information about the libvir-list
mailing list