Avoid possible overflows when validating eeprom->offset and eeprom->len
against bp->flash_info->total_size in bnx2_get_eeprom.
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
drivers/net/bnx2.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
applies-to: 03593ee43957bc3b3b9596e445a33496eb64c8d5
f917e0352f5b2a341c302fc86c94ccfca2a18abc
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 32267d5..5459e2e 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -4803,7 +4803,7 @@ bnx2_get_eeprom(struct net_device *dev,
if (eeprom->offset > bp->flash_info->total_size)
return -EINVAL;
- if ((eeprom->offset + eeprom->len) > bp->flash_info->total_size)
+ if (eeprom->offset > bp->flash_info->total_size - eeprom->len)
eeprom->len = bp->flash_info->total_size - eeprom->offset;
rc = bnx2_nvram_read(bp, eeprom->offset, eebuf, eeprom->len);
@@ -4821,7 +4821,7 @@ bnx2_set_eeprom(struct net_device *dev,
if (eeprom->offset > bp->flash_info->total_size)
return -EINVAL;
- if ((eeprom->offset + eeprom->len) > bp->flash_info->total_size)
+ if (eeprom->offset > bp->flash_info->total_size - eeprom->len)
eeprom->len = bp->flash_info->total_size - eeprom->offset;
rc = bnx2_nvram_write(bp, eeprom->offset, eebuf, eeprom->len);
---
0.99.9.GIT
--
John W. Linville
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html