Re: [PATCH 5/5] staging/otus: Move a dereference below a NULL test

From: Julia Lawall
Date: Sat Jul 11 2009 - 07:58:20 EST


On Sat, 11 Jul 2009, Julia Lawall wrote:

> On Sat, 11 Jul 2009, Jiri Slaby wrote:
>
> > On 07/11/2009 12:17 PM, Jaswinder Singh Rajput wrote:
> > > On Sat, 2009-07-11 at 10:17 +0200, Jiri Slaby wrote:
> > >> On 07/11/2009 09:51 AM, Julia Lawall wrote:
> > >>> --- a/drivers/staging/otus/wwrap.c
> > >>> +++ b/drivers/staging/otus/wwrap.c
> > >>> @@ -1016,12 +1016,13 @@ void kevent(struct work_struct *work)
> > >>> {
> > >>> struct usbdrv_private *macp =
> > >>> container_of(work, struct usbdrv_private, kevent);
> > >>> - zdev_t *dev = macp->device;
> > >>> + zdev_t *dev;
> > >>>
> > >>> if (macp == NULL)
> > >>> {
> > >>> return;
> > >>> }
> > >>
> > >> The test is rather useless here.
> > >>
> > >
> > > Why useless, it should be non-null before setting to dev.
> >
> > Even if work was NULL, macp won't be NULL.
>
> work could be a small negative number such that calling container_of would
> return 0.

On the other hand, that does not seem to be possible in this case, since
work is passed through INIT_WORK, which dereferences the work value.

julia
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/