[IPV6] ROUTE: Fix dst reference counting in ip6_pol_route_lookup().
In ip6_pol_route_lookup(), when we finish backtracking at the
top-level root entry, we need to hold it.
Bug noticed by Mitsuru Chinen <CHINEN@jp.ibm.com>.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 75f4bb9..d6b4b4f4 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -510,8 +510,8 @@
rt = fn->leaf;
rt = rt6_device_match(rt, fl->oif, flags);
BACKTRACK(&fl->fl6_src);
- dst_hold(&rt->u.dst);
out:
+ dst_hold(&rt->u.dst);
read_unlock_bh(&table->tb6_lock);
rt->u.dst.lastuse = jiffies;