netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* drivers/net/chelsio/my3126.c: inconsequent NULL checking
@ 2006-12-07 11:34 Adrian Bunk
  2006-12-07 13:22 ` Jesper Juhl
  0 siblings, 1 reply; 3+ messages in thread
From: Adrian Bunk @ 2006-12-07 11:34 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: jgarzik, netdev, linux-kernel

The Coverity checker spotted the following inconsequent NULL checking 
introduced by commit f1d3d38af75789f1b82969b83b69cab540609789:

<--  snip  -->

...
static struct cphy *my3126_phy_create(adapter_t *adapter,
                        int phy_addr, struct mdio_ops *mdio_ops)
{
        struct cphy *cphy = kzalloc(sizeof (*cphy), GFP_KERNEL);

        if (cphy)
                cphy_init(cphy, adapter, phy_addr, &my3126_ops, mdio_ops);

        INIT_WORK(&cphy->phy_update, my3216_poll, cphy);
        cphy->bmsr = 0;

        return (cphy);
}
...

<--  snip  -->

It doesn't make sense to first check whether "cphy" is NULL and 
dereference it unconditionally later.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: drivers/net/chelsio/my3126.c: inconsequent NULL checking
  2006-12-07 11:34 drivers/net/chelsio/my3126.c: inconsequent NULL checking Adrian Bunk
@ 2006-12-07 13:22 ` Jesper Juhl
  0 siblings, 0 replies; 3+ messages in thread
From: Jesper Juhl @ 2006-12-07 13:22 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Stephen Hemminger, jgarzik, netdev, linux-kernel

On 07/12/06, Adrian Bunk <bunk@stusta.de> wrote:
> The Coverity checker spotted the following inconsequent NULL checking
> introduced by commit f1d3d38af75789f1b82969b83b69cab540609789:
>
> <--  snip  -->
>
> ...
> static struct cphy *my3126_phy_create(adapter_t *adapter,
>                         int phy_addr, struct mdio_ops *mdio_ops)
> {
>         struct cphy *cphy = kzalloc(sizeof (*cphy), GFP_KERNEL);
>
>         if (cphy)
>                 cphy_init(cphy, adapter, phy_addr, &my3126_ops, mdio_ops);
>
>         INIT_WORK(&cphy->phy_update, my3216_poll, cphy);
>         cphy->bmsr = 0;
>
>         return (cphy);
> }
> ...
>
> <--  snip  -->
>
> It doesn't make sense to first check whether "cphy" is NULL and
> dereference it unconditionally later.
>

How about simply changing
         if (cphy)
                 cphy_init(cphy, adapter, phy_addr, &my3126_ops, mdio_ops);
into
         if (!cphy)
                 return NULL;

callers need to be able to handle that ofcourse, but I haven't checked that yet.

-- 
Jesper Juhl <jesper.juhl@gmail.com>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: drivers/net/chelsio/my3126.c: inconsequent NULL checking
@ 2006-12-07 15:56 Felix Marti
  0 siblings, 0 replies; 3+ messages in thread
From: Felix Marti @ 2006-12-07 15:56 UTC (permalink / raw)
  To: netdev, jesper.juhl, bunk


> Jesper Juhl <jesper.juhl@gmail.com> wrote:
> On 07/12/06, Adrian Bunk <bunk@stusta.de> wrote:
> > The Coverity checker spotted the following inconsequent NULL
checking
> > introduced by commit f1d3d38af75789f1b82969b83b69cab540609789:
> >
> > <--  snip  -->
> >
> > ...
> > static struct cphy *my3126_phy_create(adapter_t *adapter,
> >                         int phy_addr, struct mdio_ops *mdio_ops)
> > {
> >         struct cphy *cphy = kzalloc(sizeof (*cphy), GFP_KERNEL);
> >
> >         if (cphy)
> >                 cphy_init(cphy, adapter, phy_addr, &my3126_ops,
mdio_ops);
> >
> >         INIT_WORK(&cphy->phy_update, my3216_poll, cphy);
> >         cphy->bmsr = 0;
> >
> >         return (cphy);
> > }
> > ...
> >
> > <--  snip  -->
> >
> > It doesn't make sense to first check whether "cphy" is NULL and
> > dereference it unconditionally later.
> >
> 
> How about simply changing
>          if (cphy)
>                  cphy_init(cphy, adapter, phy_addr, &my3126_ops,
mdio_ops);
> into
>          if (!cphy)
>                  return NULL;
> 
> callers need to be able to handle that ofcourse, but I haven't checked
that
> yet.

[Felix Marti] Yes, returning NULL on allocation failure is the way to
go. The caller does handle it.

> 
> --
> Jesper Juhl <jesper.juhl@gmail.com>
> Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
> Plain text mails only, please      http://www.expita.com/nomime.html
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-12-07 15:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-07 11:34 drivers/net/chelsio/my3126.c: inconsequent NULL checking Adrian Bunk
2006-12-07 13:22 ` Jesper Juhl
  -- strict thread matches above, loose matches on Subject: below --
2006-12-07 15:56 Felix Marti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).