diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-12-08 15:07:49 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-08 15:07:49 +0100 |
commit | aa9c9b8c584a42a094202b7e0f63497e888f86a7 (patch) | |
tree | 3cb3b022054a7c1722657288518f495e0c4d9983 /net/ipv4/ip_input.c | |
parent | 87f7606591aea6a8a38ea4c8911b5eeeee2740b8 (diff) | |
parent | 218d11a8b071b23b76c484fd5f72a4fe3306801e (diff) | |
download | linux-aa9c9b8c584a42a094202b7e0f63497e888f86a7.tar.gz linux-aa9c9b8c584a42a094202b7e0f63497e888f86a7.tar.bz2 linux-aa9c9b8c584a42a094202b7e0f63497e888f86a7.zip |
Merge branch 'linus' into x86/quirks
Diffstat (limited to 'net/ipv4/ip_input.c')
-rw-r--r-- | net/ipv4/ip_input.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c index 861978a4f1a8..cfb38ac9d698 100644 --- a/net/ipv4/ip_input.c +++ b/net/ipv4/ip_input.c @@ -209,9 +209,17 @@ static int ip_local_deliver_finish(struct sk_buff *skb) hash = protocol & (MAX_INET_PROTOS - 1); ipprot = rcu_dereference(inet_protos[hash]); - if (ipprot != NULL && (net == &init_net || ipprot->netns_ok)) { + if (ipprot != NULL) { int ret; + if (!net_eq(net, &init_net) && !ipprot->netns_ok) { + if (net_ratelimit()) + printk("%s: proto %d isn't netns-ready\n", + __func__, protocol); + kfree_skb(skb); + goto out; + } + if (!ipprot->no_policy) { if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) { kfree_skb(skb); |