diff options
author | David Ahern <dsahern@gmail.com> | 2019-07-18 01:08:43 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-07-18 01:25:54 +0300 |
commit | 49d05fe2c9d1b4a27761c9807fec39b8155bef9e (patch) | |
tree | cf85fc699ba3cdbe45dce550a67cacd26af60baf /net/ipv6 | |
parent | 866e5fd8a7123444d865340ff21c1673f74cdecd (diff) | |
download | linux-49d05fe2c9d1b4a27761c9807fec39b8155bef9e.tar.xz |
ipv6: rt6_check should return NULL if 'from' is NULL
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>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/route.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 4d2e6b31a8d6..6fe3097b9ab7 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2563,7 +2563,7 @@ static struct dst_entry *rt6_check(struct rt6_info *rt, { 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; |