diff --git a/[refs] b/[refs] index 74e60a8b7296..1063abcd8a4e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2db3e47e7080fde2a43d6312190d8229826b8e42 +refs/heads/master: c5835df9716bdb1af8e25e9a452f717e54e02ed0 diff --git a/trunk/net/core/ethtool.c b/trunk/net/core/ethtool.c index a29b43d0b450..0133b5ebd545 100644 --- a/trunk/net/core/ethtool.c +++ b/trunk/net/core/ethtool.c @@ -323,6 +323,11 @@ static int ethtool_get_eeprom(struct net_device *dev, void __user *useraddr) bytes_remaining -= eeprom.len; } + eeprom.len = userbuf - (useraddr + sizeof(eeprom)); + eeprom.offset -= eeprom.len; + if (copy_to_user(useraddr, &eeprom, sizeof(eeprom))) + ret = -EFAULT; + kfree(data); return ret; }