diff mbox

[05/12] team: check given MAC address, if invalid return -EADDRNOTAVAIL

Message ID 1330099282-4588-6-git-send-email-danny.kukawka@bisect.de
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Danny Kukawka Feb. 24, 2012, 4:01 p.m. UTC
Check if given address is valid in .ndo_set_mac_address, if
invalid return -EADDRNOTAVAIL as eth_mac_addr() already does
if is_valid_ether_addr() fails.

Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de>
---
 drivers/net/team/team.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

Comments

Jiri Pirko Feb. 26, 2012, 12:07 a.m. UTC | #1
Fri, Feb 24, 2012 at 05:01:15PM CET, danny.kukawka@bisect.de wrote:
>Check if given address is valid in .ndo_set_mac_address, if
>invalid return -EADDRNOTAVAIL as eth_mac_addr() already does
>if is_valid_ether_addr() fails.
>
>Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de>
>---
> drivers/net/team/team.c |    3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
>diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
>index 8f81805..788650c 100644
>--- a/drivers/net/team/team.c
>+++ b/drivers/net/team/team.c
>@@ -868,6 +868,9 @@ static int team_set_mac_address(struct net_device *dev, void *p)
> 	struct team_port *port;
> 	struct sockaddr *addr = p;
> 
>+	if (!is_valid_ether_addr(addr->sa_data))
>+		return -EADDRNOTAVAIL;
>+


Wouldn't it be better to do this in one place? dev_set_mac_address()
seems like a good place...

Jirka


> 	dev->addr_assign_type &= ~NET_ADDR_RANDOM;
> 	memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
> 	rcu_read_lock();
>-- 
>1.7.8.3
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index 8f81805..788650c 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -868,6 +868,9 @@  static int team_set_mac_address(struct net_device *dev, void *p)
 	struct team_port *port;
 	struct sockaddr *addr = p;
 
+	if (!is_valid_ether_addr(addr->sa_data))
+		return -EADDRNOTAVAIL;
+
 	dev->addr_assign_type &= ~NET_ADDR_RANDOM;
 	memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
 	rcu_read_lock();