diff mbox series

[net] ipv6: Fix unbalanced rcu locking in rt6_update_exception_stamp_rt

Message ID 20190801213635.9278-1-dsahern@kernel.org
State Accepted
Delegated to: David Miller
Headers show
Series [net] ipv6: Fix unbalanced rcu locking in rt6_update_exception_stamp_rt | expand

Commit Message

David Ahern Aug. 1, 2019, 9:36 p.m. UTC
From: David Ahern <dsahern@gmail.com>

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>
---
 net/ipv6/route.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Miller Aug. 5, 2019, 8:17 p.m. UTC | #1
From: David Ahern <dsahern@kernel.org>
Date: Thu,  1 Aug 2019 14:36:35 -0700

> From: David Ahern <dsahern@gmail.com>
> 
> 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>

Applied.
diff mbox series

Patch

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;