Skip to content

Commit

Permalink
V4L/DVB (3568b): saa7111: Prevent array overrun
Browse files Browse the repository at this point in the history
Explicitely state the number of registers the SAA7111 has, and use that
defined value where relevant.  This should prevent any future array overrun
like the one I just fixed in the saa7110 driver.

This patch also saves 8 bytes of memory as a side effect, as the register
cache was larger than needed.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Jean Delvare authored and Mauro Carvalho Chehab committed Mar 23, 2006
1 parent 6254312 commit 6eb5d9c
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions drivers/media/video/saa7111.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,10 @@ MODULE_PARM_DESC(debug, "Debug level (0-1)");

/* ----------------------------------------------------------------------- */

#define SAA7111_NR_REG 0x18

struct saa7111 {
unsigned char reg[32];
unsigned char reg[SAA7111_NR_REG];

int norm;
int input;
Expand Down Expand Up @@ -227,11 +229,11 @@ saa7111_command (struct i2c_client *client,
{
int i;

for (i = 0; i < 32; i += 16) {
for (i = 0; i < SAA7111_NR_REG; i += 16) {
int j;

printk(KERN_DEBUG "%s: %03x", I2C_NAME(client), i);
for (j = 0; j < 16; ++j) {
for (j = 0; j < 16 && i + j < SAA7111_NR_REG; ++j) {
printk(" %02x",
saa7111_read(client, i + j));
}
Expand Down

0 comments on commit 6eb5d9c

Please sign in to comment.