forked from Minki/linux
ipv6: Return error for RTA_VIA attribute
IPv6 currently does not support nexthops outside of the AF_INET6 family.
Specifically, it does not handle RTA_VIA attribute. If it is passed
in a route add request, the actual route added only uses the device
which is clearly not what the user intended:
$ ip -6 ro add 2001:db8:2::/64 via inet 172.16.1.1 dev eth0
$ ip ro ls
...
2001:db8:2::/64 dev eth0 metric 1024 pref medium
Catch this and fail the route add:
$ ip -6 ro add 2001:db8:2::/64 via inet 172.16.1.1 dev eth0
Error: IPv6 does not support RTA_VIA attribute.
Fixes: 03c0566542
("mpls: Netlink commands to add, remove, and dump routes")
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b6e9e5df4e
commit
e3818541b4
@ -4182,6 +4182,10 @@ static int rtm_to_fib6_config(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|||||||
cfg->fc_gateway = nla_get_in6_addr(tb[RTA_GATEWAY]);
|
cfg->fc_gateway = nla_get_in6_addr(tb[RTA_GATEWAY]);
|
||||||
cfg->fc_flags |= RTF_GATEWAY;
|
cfg->fc_flags |= RTF_GATEWAY;
|
||||||
}
|
}
|
||||||
|
if (tb[RTA_VIA]) {
|
||||||
|
NL_SET_ERR_MSG(extack, "IPv6 does not support RTA_VIA attribute");
|
||||||
|
goto errout;
|
||||||
|
}
|
||||||
|
|
||||||
if (tb[RTA_DST]) {
|
if (tb[RTA_DST]) {
|
||||||
int plen = (rtm->rtm_dst_len + 7) >> 3;
|
int plen = (rtm->rtm_dst_len + 7) >> 3;
|
||||||
|
Loading…
Reference in New Issue
Block a user