mirror of https://gitee.com/openkylin/linux.git
Merge branch 'net-fail-route'
David Ahern says: ==================== net: Fail route add with unsupported nexthop attribute RTA_VIA was added for MPLS as a way of specifying a gateway from a different address family. IPv4 and IPv6 do not currently support RTA_VIA so using it leads to routes that are not what the user intended. Catch and fail - returning a proper error message. MPLS on the other hand does not support RTA_GATEWAY since it does not make sense to have a nexthop from the MPLS address family. Similarly, catch and fail - returning a proper error message. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
d8e96745a9
|
@ -710,6 +710,10 @@ static int rtm_to_fib_config(struct net *net, struct sk_buff *skb,
|
|||
case RTA_GATEWAY:
|
||||
cfg->fc_gw = nla_get_be32(attr);
|
||||
break;
|
||||
case RTA_VIA:
|
||||
NL_SET_ERR_MSG(extack, "IPv4 does not support RTA_VIA attribute");
|
||||
err = -EINVAL;
|
||||
goto errout;
|
||||
case RTA_PRIORITY:
|
||||
cfg->fc_priority = nla_get_u32(attr);
|
||||
break;
|
||||
|
|
|
@ -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_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]) {
|
||||
int plen = (rtm->rtm_dst_len + 7) >> 3;
|
||||
|
|
|
@ -1838,6 +1838,9 @@ static int rtm_to_route_config(struct sk_buff *skb,
|
|||
goto errout;
|
||||
break;
|
||||
}
|
||||
case RTA_GATEWAY:
|
||||
NL_SET_ERR_MSG(extack, "MPLS does not support RTA_GATEWAY attribute");
|
||||
goto errout;
|
||||
case RTA_VIA:
|
||||
{
|
||||
if (nla_get_via(nla, &cfg->rc_via_alen,
|
||||
|
|
Loading…
Reference in New Issue