[libvirt] [PATCH] openvz_conf.c: don't use undefined local, "net"

Daniel P. Berrange berrange at redhat.com
Thu Sep 3 10:42:04 UTC 2009


On Thu, Sep 03, 2009 at 12:38:43PM +0200, Jim Meyering wrote:
> Jim Meyering wrote:
> 
> > This looks like a real bug.
> >
> >>From 170af3320e68a0ac2cfe854fba28abe0e4040d2c Mon Sep 17 00:00:00 2001
> > From: Jim Meyering <meyering at redhat.com>
> > Date: Thu, 3 Sep 2009 11:24:44 +0200
> > Subject: [PATCH] openvz_conf.c: don't use undefined local, "net"
> >
> > * src/openvz_conf.c (openvzReadNetworkConf): Upon openvzRead... failure,
> > simply return -1, rather than "goto error;" where an uninitialized
> > "net" could be dereferenced.
> > ---
> >  src/openvz_conf.c |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/src/openvz_conf.c b/src/openvz_conf.c
> > index a172fe3..b1cb31a 100644
> > --- a/src/openvz_conf.c
> > +++ b/src/openvz_conf.c
> > @@ -197,7 +197,7 @@ openvzReadNetworkConf(virConnectPtr conn,
> >          openvzError(conn, VIR_ERR_INTERNAL_ERROR,
> >                   _("Could not read 'IP_ADDRESS' from config for container %d"),
> >                    veid);
> > -        goto error;
> > +        return -1;
> >      } else if (ret > 0) {
> >          token = strtok_r(temp, " ", &saveptr);
> >          while (token != NULL) {
> 
> When I reran the tool, there was still a potential NULL-deref,
> so I propose to do this instead:
> 
> >From d120f7693f1ae0e213bd9e8b244968b49dfe1427 Mon Sep 17 00:00:00 2001
> From: Jim Meyering <meyering at redhat.com>
> Date: Thu, 3 Sep 2009 12:33:11 +0200
> Subject: [PATCH] openvz_conf.c: don't use undefined local, "net"
> 
> * src/openvz_conf.c (openvzReadNetworkConf): Initialize "net".
> Otherwise, upon openvzRead... failure, we would "goto error;"
> where an uninitialized "net" could be dereferenced.
> ---
>  src/openvz_conf.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/src/openvz_conf.c b/src/openvz_conf.c
> index a172fe3..41c6684 100644
> --- a/src/openvz_conf.c
> +++ b/src/openvz_conf.c
> @@ -183,7 +183,7 @@ openvzReadNetworkConf(virConnectPtr conn,
>                        virDomainDefPtr def,
>                        int veid) {
>      int ret;
> -    virDomainNetDefPtr net;
> +    virDomainNetDefPtr net = NULL;
>      char temp[4096];
>      char *token, *saveptr = NULL;
> 

ACK

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