ipv6: Default fib6_type to RTN_UNICAST when not set
authorDavid Ahern <dsahern@gmail.com>
Wed, 19 Jun 2019 17:50:24 +0000 (10:50 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Sep 2019 08:22:06 +0000 (10:22 +0200)
[ Upstream commit c7036d97acd2527cef145b5ef9ad1a37ed21bbe6 ]

A user reported that routes are getting installed with type 0 (RTN_UNSPEC)
where before the routes were RTN_UNICAST. One example is from accel-ppp
which apparently still uses the ioctl interface and does not set
rtmsg_type. Another is the netlink interface where ipv6 does not require
rtm_type to be set (v4 does). Prior to the commit in the Fixes tag the
ipv6 stack converted type 0 to RTN_UNICAST, so restore that behavior.

Fixes: e8478e80e5a7 ("net/ipv6: Save route type in rt6_info")
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv6/route.c

index 81220077d62f2280cf4fdc6e1554b6c8d8f28284..c8858638013400a2c1cc38be299af56d7620142c 100644 (file)
@@ -3109,7 +3109,7 @@ static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg,
        rt->fib6_metric = cfg->fc_metric;
        rt->fib6_nh.nh_weight = 1;
 
-       rt->fib6_type = cfg->fc_type;
+       rt->fib6_type = cfg->fc_type ? : RTN_UNICAST;
 
        /* We cannot add true routes via loopback here,
           they would result in kernel looping; promote them to reject routes