summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDavid Ahern <dsahern@gmail.com>2019-08-01 14:36:35 -0700
committerDavid S. Miller <davem@davemloft.net>2019-08-05 13:16:58 -0700
commitcff6a327d78b05c98e0d1c4be77225ea2c0bfe8e (patch)
tree7cca358b9fd78c5c5e8e53789b55818a2a4a9e14 /net
parentcd114d2e81f632104b3f1e804104060b97337410 (diff)
downloadlinux-0-day-cff6a327d78b05c98e0d1c4be77225ea2c0bfe8e.tar.gz
linux-0-day-cff6a327d78b05c98e0d1c4be77225ea2c0bfe8e.tar.xz
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>
Diffstat (limited to 'net')
-rw-r--r--net/ipv6/route.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index e49fec767a10a..fd059e08785ab 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;