Skip to content

Commit

Permalink
[media] cx25821: off by one in cx25821_vidioc_s_input()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Dan Carpenter authored and Mauro Carvalho Chehab committed Nov 3, 2011
1 parent 8c4343e commit 567a23f
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
2 changes: 1 addition & 1 deletion drivers/media/video/cx25821/cx25821-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -1312,7 +1312,7 @@ int cx25821_vidioc_s_input(struct file *file, void *priv, unsigned int i)
return err;
}

if (i > 2) {
if (i >= CX25821_NR_INPUT) {
dprintk(1, "%s(): -EINVAL\n", __func__);
return -EINVAL;
}
Expand Down
3 changes: 2 additions & 1 deletion drivers/media/video/cx25821/cx25821.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
#define CX25821_BOARD_CONEXANT_ATHENA10 1
#define MAX_VID_CHANNEL_NUM 12
#define VID_CHANNEL_NUM 8
#define CX25821_NR_INPUT 2

struct cx25821_fmt {
char *name;
Expand Down Expand Up @@ -196,7 +197,7 @@ struct cx25821_board {
unsigned char radio_addr;

u32 clk_freq;
struct cx25821_input input[2];
struct cx25821_input input[CX25821_NR_INPUT];
};

struct cx25821_subid {
Expand Down

0 comments on commit 567a23f

Please sign in to comment.