OSDN Git Service

[media] dmxdev: don't use before checking file->private_data
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Wed, 3 Sep 2014 17:32:26 +0000 (14:32 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Wed, 3 Sep 2014 17:38:06 +0000 (14:38 -0300)
As reported by smatch:
drivers/media/dvb-core/dmxdev.c:1091 dvb_demux_poll() warn: variable dereferenced before check 'dmxdevfilter' (see line 1088)

This was introduced by changeset d102cac8097c.

We need to test before using it.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/dvb-core/dmxdev.c

index 42b5e70..abff803 100644 (file)
@@ -1085,10 +1085,9 @@ static long dvb_demux_ioctl(struct file *file, unsigned int cmd,
 static unsigned int dvb_demux_poll(struct file *file, poll_table *wait)
 {
        struct dmxdev_filter *dmxdevfilter = file->private_data;
-       struct dmxdev *dmxdev = dmxdevfilter->dev;
        unsigned int mask = 0;
 
-       if ((!dmxdevfilter) || (dmxdev->exit))
+       if ((!dmxdevfilter) || dmxdevfilter->dev->exit)
                return POLLERR;
 
        poll_wait(file, &dmxdevfilter->buffer.queue, wait);