Commit 374e751b authored by Alexey Kuznetsov's avatar Alexey Kuznetsov Committed by David S. Miller

IP input fixes:

- no need to check for pskb_may_pull() in ip_local_deliver_finish, header
is guaranteed to be at right place here.
- remove cleaing ip_summed with IP options, it was required due to
broken eth_copy_and_csum, but we do not use it any more
and it happens to break loopback
parent fb9e3ee2
...@@ -224,8 +224,6 @@ static inline int ip_local_deliver_finish(struct sk_buff *skb) ...@@ -224,8 +224,6 @@ static inline int ip_local_deliver_finish(struct sk_buff *skb)
nf_debug_ip_local_deliver(skb); nf_debug_ip_local_deliver(skb);
#endif /*CONFIG_NETFILTER_DEBUG*/ #endif /*CONFIG_NETFILTER_DEBUG*/
if (!pskb_may_pull(skb, ihl))
goto out;
__skb_pull(skb, ihl); __skb_pull(skb, ihl);
#ifdef CONFIG_NETFILTER #ifdef CONFIG_NETFILTER
...@@ -279,7 +277,6 @@ static inline int ip_local_deliver_finish(struct sk_buff *skb) ...@@ -279,7 +277,6 @@ static inline int ip_local_deliver_finish(struct sk_buff *skb)
sock_put(raw_sk); sock_put(raw_sk);
} else if (!flag) { /* Free and report errors */ } else if (!flag) { /* Free and report errors */
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PROT_UNREACH, 0); icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PROT_UNREACH, 0);
out:
kfree_skb(skb); kfree_skb(skb);
} }
} }
...@@ -346,7 +343,6 @@ static inline int ip_rcv_finish(struct sk_buff *skb) ...@@ -346,7 +343,6 @@ static inline int ip_rcv_finish(struct sk_buff *skb)
goto drop; goto drop;
iph = skb->nh.iph; iph = skb->nh.iph;
skb->ip_summed = 0;
if (ip_options_compile(NULL, skb)) if (ip_options_compile(NULL, skb))
goto inhdr_error; goto inhdr_error;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment