From: Patrick McHardy Date: Thu, 12 Jul 2007 02:41:18 +0000 (-0700) Subject: [ETH]: Validate address in eth_mac_addr X-Git-Tag: v2.6.23-rc1~1109^2~10 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=71bffe556c59a7865bf0b1ecd94530f1e296cdb0;p=karo-tx-linux.git [ETH]: Validate address in eth_mac_addr Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller --- diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c index 1387e5411f77..12c765715acf 100644 --- a/net/ethernet/eth.c +++ b/net/ethernet/eth.c @@ -266,8 +266,11 @@ void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev, static int eth_mac_addr(struct net_device *dev, void *p) { struct sockaddr *addr = p; + if (netif_running(dev)) return -EBUSY; + if (!is_valid_ether_addr(addr->sa_data)) + return -EADDRNOTAVAIL; memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); return 0; }