| From foo@baz Fri 26 Jul 2019 10:52:07 AM CEST |
| From: David Ahern <dsahern@gmail.com> |
| Date: Wed, 17 Jul 2019 15:08:43 -0700 |
| Subject: ipv6: rt6_check should return NULL if 'from' is NULL |
| |
| From: David Ahern <dsahern@gmail.com> |
| |
| [ Upstream commit 49d05fe2c9d1b4a27761c9807fec39b8155bef9e ] |
| |
| Paul reported that l2tp sessions were broken after the commit referenced |
| in the Fixes tag. Prior to this commit rt6_check returned NULL if the |
| rt6_info 'from' was NULL - ie., the dst_entry was disconnected from a FIB |
| entry. Restore that behavior. |
| |
| Fixes: 93531c674315 ("net/ipv6: separate handling of FIB entries from dst based routes") |
| Reported-by: Paul Donohue <linux-kernel@PaulSD.com> |
| Tested-by: Paul Donohue <linux-kernel@PaulSD.com> |
| 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 | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/net/ipv6/route.c |
| +++ b/net/ipv6/route.c |
| @@ -2183,7 +2183,7 @@ static struct dst_entry *rt6_check(struc |
| { |
| u32 rt_cookie = 0; |
| |
| - if ((from && !fib6_get_cookie_safe(from, &rt_cookie)) || |
| + if (!from || !fib6_get_cookie_safe(from, &rt_cookie) || |
| rt_cookie != cookie) |
| return NULL; |
| |