drivers/net/fs_enet: remove null pointer dereference
authorJulia Lawall <julia@diku.dk>
Mon, 12 May 2008 13:38:26 +0000 (15:38 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 22 May 2008 10:26:28 +0000 (06:26 -0400)
commit4ecc8c066f3cecb55807644a01435084d8ed638a
tree168e13ed10241f868ee52d07d0a9731a5e2a2e54
parent0b5923cd477674755dde670ba804649523f27c97
drivers/net/fs_enet: remove null pointer dereference

The following code appears in the function fs_init_instance in the file drivers/net/fs_enet/fs_enet-main.c.

if (fep->ops == NULL) {
printk(KERN_ERR DRV_MODULE_NAME
       ": %s No matching ops found (%d).\n",
       ndev->name, fpi->fs_no);
err = -EINVAL;
goto err;
}

This code implies that at the point of err, fep->ops can be NULL, so an
extra test is needed before dereferencing this value.

This problem was found using the following semantic match
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
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: Jeff Garzik <jgarzik@redhat.com>
drivers/net/fs_enet/fs_enet-main.c