diff options
author | Patrick McHardy <kaber@trash.net> | 2007-07-11 22:41:18 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-07-11 22:41:18 -0400 |
commit | 71bffe556c59a7865bf0b1ecd94530f1e296cdb0 (patch) | |
tree | 936bca47c59179b81b2a0ddd7ef731a196aeb97d /net/ethernet | |
parent | 50b65cc6fa3a69bdfbc8b3342d8ca6ddbbf5ec88 (diff) |
[ETH]: Validate address in eth_mac_addr
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ethernet')
-rw-r--r-- | net/ethernet/eth.c | 3 |
1 files changed, 3 insertions, 0 deletions
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, | |||
266 | static int eth_mac_addr(struct net_device *dev, void *p) | 266 | static int eth_mac_addr(struct net_device *dev, void *p) |
267 | { | 267 | { |
268 | struct sockaddr *addr = p; | 268 | struct sockaddr *addr = p; |
269 | |||
269 | if (netif_running(dev)) | 270 | if (netif_running(dev)) |
270 | return -EBUSY; | 271 | return -EBUSY; |
272 | if (!is_valid_ether_addr(addr->sa_data)) | ||
273 | return -EADDRNOTAVAIL; | ||
271 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); | 274 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); |
272 | return 0; | 275 | return 0; |
273 | } | 276 | } |