diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-06 08:32:49 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-16 00:18:09 -0200 |
commit | 05395a3d86a928d374c970a0b35a6a711072f86c (patch) | |
tree | 72fbd7f0a6e21702628506faff5f88b57d43ed3f /drivers/media/common | |
parent | b779974bdfcaec2a0eb13e44405baca07e0e92a3 (diff) | |
download | kernel_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.c | 3 |
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; |