summaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2013-06-25 18:34:36 +0200
committerStephen Hemminger <stephen@networkplumber.org>2013-06-26 01:59:27 +0200
commit537f7f8494be4219eb0ef47121ea16a6f9f0f49e (patch)
tree7da675320abf8088deba467c48d5e4755efc9435 /net/bridge
parentvxlan: fdb: allow specifying multiple destinations for zero MAC (diff)
downloadlinux-537f7f8494be4219eb0ef47121ea16a6f9f0f49e.tar.xz
linux-537f7f8494be4219eb0ef47121ea16a6f9f0f49e.zip
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')
-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",