diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/br_fdb.c | 5 | ||||
-rw-r--r-- | net/core/rtnetlink.c | 8 |
2 files changed, 5 insertions, 8 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[], | |||
707 | } | 707 | } |
708 | } | 708 | } |
709 | 709 | ||
710 | if (is_zero_ether_addr(addr)) { | ||
711 | pr_info("bridge: RTM_NEWNEIGH with invalid ether address\n"); | ||
712 | return -EINVAL; | ||
713 | } | ||
714 | |||
710 | p = br_port_get_rtnl(dev); | 715 | p = br_port_get_rtnl(dev); |
711 | if (p == NULL) { | 716 | if (p == NULL) { |
712 | pr_info("bridge: RTM_NEWNEIGH %s not a bridge port\n", | 717 | pr_info("bridge: RTM_NEWNEIGH %s not a bridge port\n", |
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 9007533867f0..3de740834d1f 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -2109,10 +2109,6 @@ static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
2109 | } | 2109 | } |
2110 | 2110 | ||
2111 | addr = nla_data(tb[NDA_LLADDR]); | 2111 | addr = nla_data(tb[NDA_LLADDR]); |
2112 | if (is_zero_ether_addr(addr)) { | ||
2113 | pr_info("PF_BRIDGE: RTM_NEWNEIGH with invalid ether address\n"); | ||
2114 | return -EINVAL; | ||
2115 | } | ||
2116 | 2112 | ||
2117 | err = -EOPNOTSUPP; | 2113 | err = -EOPNOTSUPP; |
2118 | 2114 | ||
@@ -2210,10 +2206,6 @@ static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
2210 | } | 2206 | } |
2211 | 2207 | ||
2212 | addr = nla_data(tb[NDA_LLADDR]); | 2208 | addr = nla_data(tb[NDA_LLADDR]); |
2213 | if (is_zero_ether_addr(addr)) { | ||
2214 | pr_info("PF_BRIDGE: RTM_DELNEIGH with invalid ether address\n"); | ||
2215 | return -EINVAL; | ||
2216 | } | ||
2217 | 2209 | ||
2218 | err = -EOPNOTSUPP; | 2210 | err = -EOPNOTSUPP; |
2219 | 2211 | ||