aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2011-10-13 01:41:41 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-11-03 16:33:55 -0400
commit567a23f4389f86c10355ae89909d6d87f312d1a0 (patch)
tree2d9819a0995945ba4dbe0b7ef86f17cd411d53c6
parent8c4343e5909f956140229b0d960dc7a9c4fd4bdd (diff)
[media] cx25821: off by one in cx25821_vidioc_s_input()
If "i" is 2 then when we call cx25821_video_mux() we'd end up going past the end of the cx25821_boards[dev->board]->input[]. The INPUT() macro obfuscates what's going on in that function so it's a bit hard to follow. And as Mauro points out the hard coded 2 is not very helpful. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/cx25821/cx25821-video.c2
-rw-r--r--drivers/media/video/cx25821/cx25821.h3
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/video/cx25821/cx25821-video.c b/drivers/media/video/cx25821/cx25821-video.c
index 084fc0899e1..4d6907cda75 100644
--- a/drivers/media/video/cx25821/cx25821-video.c
+++ b/drivers/media/video/cx25821/cx25821-video.c
@@ -1312,7 +1312,7 @@ int cx25821_vidioc_s_input(struct file *file, void *priv, unsigned int i)
1312 return err; 1312 return err;
1313 } 1313 }
1314 1314
1315 if (i > 2) { 1315 if (i >= CX25821_NR_INPUT) {
1316 dprintk(1, "%s(): -EINVAL\n", __func__); 1316 dprintk(1, "%s(): -EINVAL\n", __func__);
1317 return -EINVAL; 1317 return -EINVAL;
1318 } 1318 }
diff --git a/drivers/media/video/cx25821/cx25821.h b/drivers/media/video/cx25821/cx25821.h
index db2615b2bac..2d2d0093282 100644
--- a/drivers/media/video/cx25821/cx25821.h
+++ b/drivers/media/video/cx25821/cx25821.h
@@ -98,6 +98,7 @@
98#define CX25821_BOARD_CONEXANT_ATHENA10 1 98#define CX25821_BOARD_CONEXANT_ATHENA10 1
99#define MAX_VID_CHANNEL_NUM 12 99#define MAX_VID_CHANNEL_NUM 12
100#define VID_CHANNEL_NUM 8 100#define VID_CHANNEL_NUM 8
101#define CX25821_NR_INPUT 2
101 102
102struct cx25821_fmt { 103struct cx25821_fmt {
103 char *name; 104 char *name;
@@ -196,7 +197,7 @@ struct cx25821_board {
196 unsigned char radio_addr; 197 unsigned char radio_addr;
197 198
198 u32 clk_freq; 199 u32 clk_freq;
199 struct cx25821_input input[2]; 200 struct cx25821_input input[CX25821_NR_INPUT];
200}; 201};
201 202
202struct cx25821_subid { 203struct cx25821_subid {