summary refs log tree commit diff
path: root/net/bridge/br_fdb.c
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2013-06-25 09:34:36 -0700
committerStephen Hemminger <stephen@networkplumber.org>2013-06-25 16:59:27 -0700
commit537f7f8494be4219eb0ef47121ea16a6f9f0f49e (patch)
tree7da675320abf8088deba467c48d5e4755efc9435 /net/bridge/br_fdb.c
parent58e4c767046a35f11a55af6ce946054ddf4a8580 (diff)
downloadlinux-537f7f8494be4219eb0ef47121ea16a6f9f0f49e.tar.gz
bridge: check for zero ether address in fdb add
The check for all-zero ether address was removed from rtnetlink core,
since Vxlan uses all-zero ether address to signify default address.
Need to add check back in for bridge.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Diffstat (limited to 'net/bridge/br_fdb.c')
-rw-r--r--net/bridge/br_fdb.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index ebfa4443c69b..60aca9109a50 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -707,6 +707,11 @@ int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
 		}
 	}
 
+	if (is_zero_ether_addr(addr)) {
+		pr_info("bridge: RTM_NEWNEIGH with invalid ether address\n");
+		return -EINVAL;
+	}
+
 	p = br_port_get_rtnl(dev);
 	if (p == NULL) {
 		pr_info("bridge: RTM_NEWNEIGH %s not a bridge port\n",