From: Mauro Carvalho Chehab Date: Wed, 3 Sep 2014 17:32:26 +0000 (-0300) Subject: dmxdev: don't use before checking file->private_data X-Git-Tag: accepted/tizen/common/20141215.134117~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=687e6ad9f5edd1c91a75532d4996bcb613a85f29;p=platform%2Fkernel%2Flinux-3.10.git dmxdev: don't use before checking file->private_data 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. Change-Id: I4e51d508c466b915338bd0a88a7afb49f4dbeb4d Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Changbing Xiong --- diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c index 42b5e70..abff803 100644 --- a/drivers/media/dvb-core/dmxdev.c +++ b/drivers/media/dvb-core/dmxdev.c @@ -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);