diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-05-28 10:41:17 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-28 10:41:17 (GMT) |
commit | 50636af715ac1ceb1872bd29a4bdcc68975c3263 (patch) | |
tree | 55e45cff7af6aa1fcacef7803556f6f9a14e7f4c | |
parent | 418bd0d4dfbff25ffe4365ddd3e7cba8c70ccba8 (diff) | |
download | linux-50636af715ac1ceb1872bd29a4bdcc68975c3263.tar.xz |
xt_tee: use skb_dst_drop()
After commit 7fee226a (net: add a noref bit on skb dst), its wrong to
use : dst_release(skb_dst(skb)), since we could decrement a refcount
while skb dst was not refcounted.
We should use skb_dst_drop(skb) instead.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/netfilter/xt_TEE.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/netfilter/xt_TEE.c b/net/netfilter/xt_TEE.c index d7920d9f..859d9fd 100644 --- a/net/netfilter/xt_TEE.c +++ b/net/netfilter/xt_TEE.c @@ -76,7 +76,7 @@ tee_tg_route4(struct sk_buff *skb, const struct xt_tee_tginfo *info) if (ip_route_output_key(net, &rt, &fl) != 0) return false; - dst_release(skb_dst(skb)); + skb_dst_drop(skb); skb_dst_set(skb, &rt->u.dst); skb->dev = rt->u.dst.dev; skb->protocol = htons(ETH_P_IP); @@ -157,7 +157,7 @@ tee_tg_route6(struct sk_buff *skb, const struct xt_tee_tginfo *info) if (dst == NULL) return false; - dst_release(skb_dst(skb)); + skb_dst_drop(skb); skb_dst_set(skb, dst); skb->dev = dst->dev; skb->protocol = htons(ETH_P_IPV6); |