aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/common
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-12-06 08:32:49 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-16 00:18:09 -0200
commit05395a3d86a928d374c970a0b35a6a711072f86c (patch)
tree72fbd7f0a6e21702628506faff5f88b57d43ed3f /drivers/media/common
parentb779974bdfcaec2a0eb13e44405baca07e0e92a3 (diff)
downloadkernel_samsung_smdk4412-05395a3d86a928d374c970a0b35a6a711072f86c.zip
kernel_samsung_smdk4412-05395a3d86a928d374c970a0b35a6a711072f86c.tar.gz
kernel_samsung_smdk4412-05395a3d86a928d374c970a0b35a6a711072f86c.tar.bz2
V4L/DVB (13576): ir-common: fix an oops caused by the usage of an initialized drvdata
As reported by Sander Eikelenboom <linux@eikelemboon.it>: > Tried to update my v4l-dvb modules today, but got a bug with my pinnacle > card, seems to be related to the recent changes in the ir code. > > Dec 5 23:30:25 security kernel: [ 5.735698] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 > Dec 5 23:30:25 security kernel: [ 5.735716] IP: [<ffffffffa00997be>] :ir_common:ir_input_free+0x26/0x3e Thanks-to: Sander Eikelenboom <linux@eikelemboon.it> for reporting and testing the fix. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/common')
-rw-r--r--drivers/media/common/ir-keytable.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/common/ir-keytable.c b/drivers/media/common/ir-keytable.c
index 26ce5bc..ceef0e8 100644
--- a/drivers/media/common/ir-keytable.c
+++ b/drivers/media/common/ir-keytable.c
@@ -419,6 +419,9 @@ void ir_input_free(struct input_dev *dev)
{
struct ir_scancode_table *rc_tab = input_get_drvdata(dev);
+ if (!rc_tab)
+ return;
+
IR_dprintk(1, "Freed keycode table\n");
rc_tab->size = 0;