diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2008-10-08 11:35:03 +0200 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2008-10-08 11:35:03 +0200 |
commit | b21f89019399ff75d9c239010e38b840eb6e01e7 (patch) | |
tree | f4b2ef9f75e2330b983ba27515a5687f8e923e24 /net/ipv6 | |
parent | 400dad39d1c33fe797e47326d87a3f54d0ac5181 (diff) | |
download | kernel-common-b21f89019399ff75d9c239010e38b840eb6e01e7.tar.gz kernel-common-b21f89019399ff75d9c239010e38b840eb6e01e7.tar.bz2 kernel-common-b21f89019399ff75d9c239010e38b840eb6e01e7.zip |
netfilter: netns: fix {ip,6}_route_me_harder() in netns
Take netns from skb->dst->dev. It should be safe because, they are called
from LOCAL_OUT hook where dst is valid (though, I'm not exactly sure about
IPVS and queueing packets to userspace).
[Patrick: its safe everywhere since they already expect skb->dst to be set]
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/netfilter.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/netfilter.c b/net/ipv6/netfilter.c index 8c6c5e71f210..4cb4844a3220 100644 --- a/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c @@ -23,7 +23,7 @@ int ip6_route_me_harder(struct sk_buff *skb) .saddr = iph->saddr, } }, }; - dst = ip6_route_output(&init_net, skb->sk, &fl); + dst = ip6_route_output(dev_net(skb->dst->dev), skb->sk, &fl); #ifdef CONFIG_XFRM if (!(IP6CB(skb)->flags & IP6SKB_XFRM_TRANSFORMED) && |