From 48a922f0dee24c7717efcd2b60bcd12b3482a53a Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Thu, 17 Mar 2005 00:24:01 -0800 Subject: [PATCH] [PATCH] i2c eeprom oops fix Fix recent oopses with i2c nvram access. If count is less than in_row1, bad things will happen. Cc: "Antonino A. Daplas" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/i2c/chips/eeprom.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/chips/eeprom.c b/drivers/i2c/chips/eeprom.c index 8e49fa7eb7ab..f126d011cfee 100644 --- a/drivers/i2c/chips/eeprom.c +++ b/drivers/i2c/chips/eeprom.c @@ -130,7 +130,8 @@ static ssize_t eeprom_read(struct kobject *kobj, char *buf, loff_t off, size_t c /* Hide Vaio security settings to regular users (16 first bytes) */ if (data->nature == VAIO && off < 16 && !capable(CAP_SYS_ADMIN)) { - int in_row1 = 16 - off; + size_t in_row1 = 16 - off; + in_row1 = min(in_row1, count); memset(buf, 0, in_row1); if (count - in_row1 > 0) memcpy(buf + in_row1, &data->data[16], count - in_row1); -- 2.39.5