ip_input.c (57b8628bb0ac4e47c806e45c5bbd89282e93869b) ip_input.c (e87cc4728f0e2fb663e592a1141742b1d6c63256)
1/*
2 * INET An implementation of the TCP/IP protocol suite for the LINUX
3 * operating system. INET is implemented using the BSD Socket
4 * interface as the means of communication with the user level.
5 *
6 * The Internet Protocol (IP) module.
7 *
8 * Authors: Ross Biro

--- 196 unchanged lines hidden (view full) ---

205 raw = raw_local_deliver(skb, protocol);
206
207 hash = protocol & (MAX_INET_PROTOS - 1);
208 ipprot = rcu_dereference(inet_protos[hash]);
209 if (ipprot != NULL) {
210 int ret;
211
212 if (!net_eq(net, &init_net) && !ipprot->netns_ok) {
1/*
2 * INET An implementation of the TCP/IP protocol suite for the LINUX
3 * operating system. INET is implemented using the BSD Socket
4 * interface as the means of communication with the user level.
5 *
6 * The Internet Protocol (IP) module.
7 *
8 * Authors: Ross Biro

--- 196 unchanged lines hidden (view full) ---

205 raw = raw_local_deliver(skb, protocol);
206
207 hash = protocol & (MAX_INET_PROTOS - 1);
208 ipprot = rcu_dereference(inet_protos[hash]);
209 if (ipprot != NULL) {
210 int ret;
211
212 if (!net_eq(net, &init_net) && !ipprot->netns_ok) {
213 if (net_ratelimit())
214 printk("%s: proto %d isn't netns-ready\n",
215 __func__, protocol);
213 net_info_ratelimited("%s: proto %d isn't netns-ready\n",
214 __func__, protocol);
216 kfree_skb(skb);
217 goto out;
218 }
219
220 if (!ipprot->no_policy) {
221 if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
222 kfree_skb(skb);
223 goto out;

--- 69 unchanged lines hidden (view full) ---

293 goto drop;
294 }
295
296 if (unlikely(opt->srr)) {
297 struct in_device *in_dev = __in_dev_get_rcu(dev);
298
299 if (in_dev) {
300 if (!IN_DEV_SOURCE_ROUTE(in_dev)) {
215 kfree_skb(skb);
216 goto out;
217 }
218
219 if (!ipprot->no_policy) {
220 if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
221 kfree_skb(skb);
222 goto out;

--- 69 unchanged lines hidden (view full) ---

292 goto drop;
293 }
294
295 if (unlikely(opt->srr)) {
296 struct in_device *in_dev = __in_dev_get_rcu(dev);
297
298 if (in_dev) {
299 if (!IN_DEV_SOURCE_ROUTE(in_dev)) {
301 if (IN_DEV_LOG_MARTIANS(in_dev) &&
302 net_ratelimit())
303 pr_info("source route option %pI4 -> %pI4\n",
304 &iph->saddr, &iph->daddr);
300 if (IN_DEV_LOG_MARTIANS(in_dev))
301 net_info_ratelimited("source route option %pI4 -> %pI4\n",
302 &iph->saddr,
303 &iph->daddr);
305 goto drop;
306 }
307 }
308
309 if (ip_options_rcv_srr(skb))
310 goto drop;
311 }
312

--- 141 unchanged lines hidden ---
304 goto drop;
305 }
306 }
307
308 if (ip_options_rcv_srr(skb))
309 goto drop;
310 }
311

--- 141 unchanged lines hidden ---