diff options
author | Patrick McHardy <kaber@trash.net> | 2009-05-26 15:49:11 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-06-11 20:01:16 -0700 |
commit | 708f2c81c4de7b2660ca4703ba00e541f750b7e4 (patch) | |
tree | 2d94016f6768492ddcdd4d501efeb1c194d6d924 | |
parent | 54823830733c96b9eda9e82167dcc6f04b8a4ca0 (diff) |
vlan/macvlan: fix NULL pointer dereferences in ethtool handlers
[ Upstream commit 7816a0a862d851d0b05710e7d94bfe390f3180e2 ]
Check whether the underlying device provides a set of ethtool ops before
checking for individual handlers to avoid NULL pointer dereferences.
Reported-by: Art van Breemen <ard@telegraafnet.nl>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/net/macvlan.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 42394505bb5..1aa03881465 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -328,7 +328,8 @@ static u32 macvlan_ethtool_get_rx_csum(struct net_device *dev) const struct macvlan_dev *vlan = netdev_priv(dev); struct net_device *lowerdev = vlan->lowerdev; - if (lowerdev->ethtool_ops->get_rx_csum == NULL) + if (lowerdev->ethtool_ops == NULL || + lowerdev->ethtool_ops->get_rx_csum == NULL) return 0; return lowerdev->ethtool_ops->get_rx_csum(lowerdev); } |