[media] drivers/media/pci/saa7134/saa7134-dvb.c: Test if videobuf_dvb_get_frontend...
authorPeter Senna Tschudin <peter.senna@gmail.com>
Tue, 30 Oct 2012 14:09:41 +0000 (11:09 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 21 Dec 2012 19:43:22 +0000 (17:43 -0200)
Based on commit: e66131cee501ee720b7b58a4b87073b8fbaaaba6
Not testing videobuf_dvb_get_frontend output may cause OOPS if it return
NULL. This patch fixes this issue.
The semantic patch that found this issue is(http://coccinelle.lip6.fr/):
// <smpl>
@@
identifier i,a,b;
statement S, S2;
@@
i = videobuf_dvb_get_frontend(...);
... when != if (!i) S
* if (i->a.b)
S2
// </smpl>

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/pci/saa7134/saa7134-dvb.c

index b209de40a4f8d69373eb8600f140c613a48310b2..27915e501db9d3bbcdb3944a4bf8237ef9254ba0 100644 (file)
@@ -607,6 +607,9 @@ static int configure_tda827x_fe(struct saa7134_dev *dev,
        /* Get the first frontend */
        fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1);
 
+       if (!fe0)
+               return -EINVAL;
+
        fe0->dvb.frontend = dvb_attach(tda10046_attach, cdec_conf, &dev->i2c_adap);
        if (fe0->dvb.frontend) {
                if (cdec_conf->i2c_gate)