net/ipv6: Handle reject routes with onlink flag

"Linux Kernel Mailing List" <[email protected]>
Newsgroups gmane.linux.kernel.commits.head
Message-ID <[email protected]>
Web:        https://git.kernel.org/torvalds/c/58e354c01b1906b603dcdb28ec35250b09eac625
Commit:     58e354c01b1906b603dcdb28ec35250b09eac625
Parent:     c861ef83d771362ed0475cd510eb56cf4126ef34
Refname:    refs/heads/master
Author:     David Ahern <[email protected]>
AuthorDate: Tue Feb 6 12:14:12 2018 -0800
Committer:  David S. Miller <[email protected]>
CommitDate: Wed Feb 7 21:52:06 2018 -0500

    net/ipv6: Handle reject routes with onlink flag
    
    Verification of nexthops with onlink flag need to handle unreachable
    routes. The lookup is only intended to validate the gateway address
    is not a local address and if the gateway resolves the egress device
    must match the given device. Hence, hitting any default reject route
    is ok.
    
    Fixes: fc1e64e1092f ("net/ipv6: Add support for onlink flag")
    Signed-off-by: David Ahern <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
---
 net/ipv6/route.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index fb2d251c0500..69c43d289c69 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2488,7 +2488,8 @@ static int ip6_route_check_nh_onlink(struct net *net,
 	err = 0;
 	grt = ip6_nh_lookup_table(net, cfg, gw_addr, tbid, 0);
 	if (grt) {
-		if (grt->rt6i_flags & flags || dev != grt->dst.dev) {
+		if (!grt->dst.error &&
+		    (grt->rt6i_flags & flags || dev != grt->dst.dev)) {
 			NL_SET_ERR_MSG(extack, "Nexthop has invalid gateway");
 			err = -EINVAL;
 		}
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.