[PATCH] PPC: CELLEB - fix potential NULL pointer dereference

Ishizaki Kou kou.ishizaki at toshiba.co.jp
Thu Nov 29 14:22:45 EST 2007


Cyrill Gorcunov <gorcunov at gmail.com> wrote:
> On 11/28/07, Cyrill Gorcunov <gorcunov at gmail.com> wrote:
> > On 11/28/07, Michael Ellerman <michael at ellerman.id.au> wrote:
> > > On Mon, 2007-11-26 at 10:46 +0300, Cyrill Gorcunov wrote:
> > > > This patch adds checking for NULL value returned to prevent possible
> > > > NULL pointer dereference.
> > > > Also two unneeded 'return' are removed.
> > > >
> > > > Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
> > > > ---
> > > > Any comments are welcome.
> > >
> > > I guess it's good to be paranoid, but this is a little verbose:
> > >
> > >        wi0 = of_get_property(node, "device-id", NULL);
> > > +       if (unlikely((!wi0))) {
> > > +               printk(KERN_ERR "PCI: device-id not found.\n");
> > > +               goto error;
> > > +       }
> > >        wi1 = of_get_property(node, "vendor-id", NULL);
> > > +       if (unlikely((!wi1))) {
> > > +               printk(KERN_ERR "PCI: vendor-id not found.\n");
> > > +               goto error;
> > > +       }
> > >        wi2 = of_get_property(node, "class-code", NULL);
> > > +       if (unlikely((!wi2))) {
> > > +               printk(KERN_ERR "PCI: class-code not found.\n");
> > > +               goto error;
> > > +       }
> > >        wi3 = of_get_property(node, "revision-id", NULL);
> > > +       if (unlikely((!wi3))) {
> > > +               printk(KERN_ERR "PCI: revision-id not found.\n");
> > > +               goto error;
> > > +       }
> > >
> > > Perhaps instead:
> > >
> > >        wi0 = of_get_property(node, "device-id", NULL);
> > >        wi1 = of_get_property(node, "vendor-id", NULL);
> > >        wi2 = of_get_property(node, "class-code", NULL);
> > >        wi3 = of_get_property(node, "revision-id", NULL);
> > >
> > >       if (!wi0 || !wi1 || !wi2 || !wi3) {
> > >               printk(KERN_ERR "PCI: Missing device tree properties.\n");
> > >               goto error;
> > >       }
> >
> > Hi Michael, yes that is much better (actually I was doubt about what form of
> > which the checking style to use - your form is much compact but mine does
> > show where *exactly* the problem appeared). So 'case that is the fake driver
> > your form is preferred ;) Ishizaki, could you use Michael's part then?
> >
> > >
> > >
> > > cheers
> > >
> > > --
> > > Michael Ellerman
> > > OzLabs, IBM Australia Development Lab
> > >
> > > wwweb: http://michael.ellerman.id.au
> > > phone: +61 2 6212 1183 (tie line 70 21183)
> > >
> > > We do not inherit the earth from our ancestors,
> > > we borrow it from our children. - S.M.A.R.T Person
> > >
> > >
> >
> > Cyrill
> >
> Ishizaki I can update the patch if you needed. Should I?
> 
> Cyrill

There is no problem to use Michael's part, and I also prefer simple
one like this.

Cyrill, would you please update your patch?

Best regards,
Kou Ishizaki



More information about the Linuxppc-dev mailing list