mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 06:02:05 +00:00
net: shy netns_ok check
Failure to pass netns_ok check is SILENT, except some MIB counter is incremented somewhere. And adding "netns_ok = 1" (after long head-scratching session) is usually the last step in making some protocol netns-ready... Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6e093d9dff
commit
9c0188acf6
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user