diff options
author | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2006-08-28 16:19:30 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 18:18:26 -0400 |
commit | 33cc48966827165e49de1cb8ff4fb57c127d4be0 (patch) | |
tree | 442ad224702bb0a085a71efabc1ff18fdff91d12 /net/ipv6/route.c | |
parent | 5176f91ea83f1a59eba4dba88634a4729d51d1ac (diff) |
[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.c | 2 |
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: | |||
510 | rt = fn->leaf; | 510 | rt = fn->leaf; |
511 | rt = rt6_device_match(rt, fl->oif, flags); | 511 | rt = rt6_device_match(rt, fl->oif, flags); |
512 | BACKTRACK(&fl->fl6_src); | 512 | BACKTRACK(&fl->fl6_src); |
513 | dst_hold(&rt->u.dst); | ||
514 | out: | 513 | out: |
514 | dst_hold(&rt->u.dst); | ||
515 | read_unlock_bh(&table->tb6_lock); | 515 | read_unlock_bh(&table->tb6_lock); |
516 | 516 | ||
517 | rt->u.dst.lastuse = jiffies; | 517 | rt->u.dst.lastuse = jiffies; |