aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18/cx18-fileops.c
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2008-05-12 15:01:27 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-05-14 02:56:45 -0300
commit07c87a833e9ef92280ed24ab85cd4eb49cbca9c0 (patch)
tree58ba6654998600742c352f12ed5ed1967e1f598e /drivers/media/video/cx18/cx18-fileops.c
parentcba627a51a26eaed3526c423f5fd0410dd721ae2 (diff)
downloadkernel_samsung_smdk4412-07c87a833e9ef92280ed24ab85cd4eb49cbca9c0.zip
kernel_samsung_smdk4412-07c87a833e9ef92280ed24ab85cd4eb49cbca9c0.tar.gz
kernel_samsung_smdk4412-07c87a833e9ef92280ed24ab85cd4eb49cbca9c0.tar.bz2
V4L/DVB (7891): cx18/ivtv: fix open() kernel oops
Upon error conditions in cx18/ivtv_probe(), the code at the 'err:' label leaves a NULL entry in cx18/ivtv_cards[]. This can cause a NULL pointer de-reference in cx18/ivtv_v4l2_open() which is fixed by this patch. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx18/cx18-fileops.c')
-rw-r--r--drivers/media/video/cx18/cx18-fileops.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/media/video/cx18/cx18-fileops.c b/drivers/media/video/cx18/cx18-fileops.c
index 91eff6e..0b3141d 100644
--- a/drivers/media/video/cx18/cx18-fileops.c
+++ b/drivers/media/video/cx18/cx18-fileops.c
@@ -662,6 +662,8 @@ int cx18_v4l2_open(struct inode *inode, struct file *filp)
for (x = 0; cx == NULL && x < cx18_cards_active; x++) {
/* find out which stream this open was on */
for (y = 0; y < CX18_MAX_STREAMS; y++) {
+ if (cx18_cards[x] == NULL)
+ continue;
s = &cx18_cards[x]->streams[y];
if (s->v4l2dev && s->v4l2dev->minor == minor) {
cx = cx18_cards[x];