summaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2006-08-28 13:19:30 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2006-09-22 15:18:26 -0700
commit33cc48966827165e49de1cb8ff4fb57c127d4be0 (patch)
tree442ad224702bb0a085a71efabc1ff18fdff91d12 /net/ipv6/route.c
parent5176f91ea83f1a59eba4dba88634a4729d51d1ac (diff)
downloadlinux-33cc48966827165e49de1cb8ff4fb57c127d4be0.tar.gz
linux-33cc48966827165e49de1cb8ff4fb57c127d4be0.tar.bz2
linux-33cc48966827165e49de1cb8ff4fb57c127d4be0.zip
[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>
Diffstat (limited to 'net/ipv6/route.c')
-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 75f4bb9611ce..d6b4b4f48d18 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -510,8 +510,8 @@ restart:
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;