V4L/DVB: drivers/media/video: avoid NULL dereference
authorJulia Lawall <julia@diku.dk>
Tue, 6 Apr 2010 05:51:04 +0000 (02:51 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 19 May 2010 15:56:42 +0000 (12:56 -0300)
It seems impossible for ov to be NULL at this point.

The semantic match that finds the problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r exists@
expression E, E1;
identifier f;
statement S1,S3;
iterator iter;
@@

if ((E == NULL && ...) || ...)
{
  ... when != false ((E == NULL && ...) || ...)
      when != true  ((E != NULL && ...) || ...)
      when != iter(E,...) S1
      when != E = E1
(
  sizeof(E->f)
|
* E->f
)
  ... when any
  return ...;
}
else S3
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/ov511.c

index e0bce8d..dd1b1ac 100644 (file)
@@ -5916,11 +5916,6 @@ ov51x_disconnect(struct usb_interface *intf)
        mutex_lock(&ov->lock);
        usb_set_intfdata (intf, NULL);
 
-       if (!ov) {
-               mutex_unlock(&ov->lock);
-               return;
-       }
-
        /* Free device number */
        ov511_devused &= ~(1 << ov->nr);