xfrm4_input.c (df9b42963f2d010ae3163a894ce22cf6b27cd344) xfrm4_input.c (14bbd6a565e1bcdc240d44687edb93f721cfdf99)
1/*
2 * xfrm4_input.c
3 *
4 * Changes:
5 * YOSHIFUJI Hideaki @USAGI
6 * Split up af-specific portion
7 * Derek Atkins <derek@ihtfp.com>
8 * Add Encapsulation support

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

127 break;
128 }
129
130 /* At this point we are sure that this is an ESPinUDP packet,
131 * so we need to remove 'len' bytes from the packet (the UDP
132 * header and optional ESP marker bytes) and then modify the
133 * protocol to ESP, and then call into the transform receiver.
134 */
1/*
2 * xfrm4_input.c
3 *
4 * Changes:
5 * YOSHIFUJI Hideaki @USAGI
6 * Split up af-specific portion
7 * Derek Atkins <derek@ihtfp.com>
8 * Add Encapsulation support

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

127 break;
128 }
129
130 /* At this point we are sure that this is an ESPinUDP packet,
131 * so we need to remove 'len' bytes from the packet (the UDP
132 * header and optional ESP marker bytes) and then modify the
133 * protocol to ESP, and then call into the transform receiver.
134 */
135 if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
135 if (skb_unclone(skb, GFP_ATOMIC))
136 goto drop;
137
138 /* Now we can update and verify the packet length... */
139 iph = ip_hdr(skb);
140 iphlen = iph->ihl << 2;
141 iph->tot_len = htons(ntohs(iph->tot_len) - len);
142 if (skb->len < iphlen + len) {
143 /* packet is too small!?! */

--- 23 unchanged lines hidden ---
136 goto drop;
137
138 /* Now we can update and verify the packet length... */
139 iph = ip_hdr(skb);
140 iphlen = iph->ihl << 2;
141 iph->tot_len = htons(ntohs(iph->tot_len) - len);
142 if (skb->len < iphlen + len) {
143 /* packet is too small!?! */

--- 23 unchanged lines hidden ---