diff options
author | David Ahern <dsahern@gmail.com> | 2019-08-01 14:36:35 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-08-05 13:16:58 -0700 |
commit | cff6a327d78b05c98e0d1c4be77225ea2c0bfe8e (patch) | |
tree | 7cca358b9fd78c5c5e8e53789b55818a2a4a9e14 | |
parent | cd114d2e81f632104b3f1e804104060b97337410 (diff) |
ipv6: Fix unbalanced rcu locking in rt6_update_exception_stamp_rt
The nexthop path in rt6_update_exception_stamp_rt needs to call
rcu_read_unlock if it fails to find a fib6_nh match rather than
just returning.
Fixes: e659ba31d806 ("ipv6: Handle all fib6_nh in a nexthop in exception handling")
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-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 e49fec767a10..fd059e08785a 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -1951,7 +1951,7 @@ static void rt6_update_exception_stamp_rt(struct rt6_info *rt) nexthop_for_each_fib6_nh(from->nh, fib6_nh_find_match, &arg); if (!arg.match) - return; + goto unlock; fib6_nh = arg.match; } else { fib6_nh = from->fib6_nh; |