[media] drivers/media/video/atmel-isi.c: eliminate a null pointer dereference
authorJulia Lawall <julia@diku.dk>
Fri, 28 Oct 2011 22:58:16 +0000 (19:58 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 7 Nov 2011 15:12:24 +0000 (13:12 -0200)
The variable isi might be null or might be freed at the point of the call
to clk_put.  pclk contains the value that isi->pclk is expected to point to.

The semantic match that finds this problem is as follows:

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

if (E == NULL)
{
  ... when != if (E == NULL || ...) S1 else S2
      when != E = E1
*E->f
  ... when any
  return ...;
}
else S3
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/atmel-isi.c

index 8c775c59e120f30589d520c49d75b18fd9a397fa..fbc904f2f6fd80a1f7704fbd2fc6d3c72e5051b5 100644 (file)
@@ -1036,7 +1036,7 @@ err_alloc_ctx:
 err_alloc_descriptors:
        kfree(isi);
 err_alloc_isi:
-       clk_put(isi->pclk);
+       clk_put(pclk);
 
        return ret;
 }