ethtool: __ethtool_set_sg: check for function pointer before using it

__ethtool_set_sg does not check if dev->ethtool_ops->set_sg is defined
which can result in a NULL pointer dereference when ethtool is used to
change SG settings for drivers without SG support.

Signed-off-by: Roger Luethi <rl@hellgate.ch>
Reviewed-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Roger Luethi 2011-03-17 06:37:21 +00:00 committed by David S. Miller
parent 67c5c6cb81
commit 5e5069b41d
1 changed files with 3 additions and 0 deletions

View File

@ -1457,6 +1457,9 @@ static int __ethtool_set_sg(struct net_device *dev, u32 data)
{ {
int err; int err;
if (!dev->ethtool_ops->set_sg)
return -EOPNOTSUPP;
if (data && !(dev->features & NETIF_F_ALL_CSUM)) if (data && !(dev->features & NETIF_F_ALL_CSUM))
return -EINVAL; return -EINVAL;