Require gateways for routes to be of the same address family as the
route itself. It fixes a bug where an IPv4 route for example has an IPv6 gateway specified: route add 10.1.1.1 -inet6 fe80::1%fxp0 Destination Gateway Flags Refs Use Netif Expire 10.1.1.1 fe80::1%fxp0 UGHS 0 0 fxp0 The fix rejects these illegal combinations: route: writing to routing socket: Invalid argument add host 10.1.1.1: gateway fe80::1%fxp0: Invalid argument Reviewed by: KAME jinmei@isl.rdc.toshiba.co.jp Reviewed by: andre (mentor) Approved by: re MFC after: 5
This commit is contained in:
parent
cdcf928a55
commit
16a2e0a6c8
@ -744,7 +744,10 @@ rtrequest1(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt)
|
||||
|
||||
case RTM_ADD:
|
||||
if ((flags & RTF_GATEWAY) && !gateway)
|
||||
panic("rtrequest: GATEWAY but no gateway");
|
||||
senderr(EINVAL);
|
||||
if (dst && gateway && (dst->sa_family != gateway->sa_family) &&
|
||||
(gateway->sa_family != AF_UNSPEC) && (gateway->sa_family != AF_LINK))
|
||||
senderr(EINVAL);
|
||||
|
||||
if (info->rti_ifa == NULL && (error = rt_getifa(info)))
|
||||
senderr(error);
|
||||
|
Loading…
x
Reference in New Issue
Block a user