]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
arch/sparc/kernel: Eliminate what looks like a NULL pointer dereference
authorJulia Lawall <julia@diku.dk>
Fri, 4 Jun 2010 23:17:37 +0000 (16:17 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 4 Jun 2010 23:17:37 +0000 (16:17 -0700)
At the point of the test, action cannot be NULL, as it has been dereferenced
in the code just above.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

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

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

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/kernel/sun4d_irq.c

index ab036a72de5a16460cdb8b548dbcf15bb2e04db6..e11b4612dabb32df7cd0155ed6aed40515c038ad 100644 (file)
@@ -183,7 +183,7 @@ void sun4d_free_irq(unsigned int irq, void *dev_id)
                goto out_unlock;
        }
        
-       if (action && tmp)
+       if (tmp)
                tmp->next = action->next;
        else
                *actionp = action->next;