|
|
|
@ -44,7 +44,7 @@ Closes 20532 |
|
|
|
|
|
|
|
|
|
--- a/net/ipv6/ip6_output.c
|
|
|
|
|
+++ b/net/ipv6/ip6_output.c
|
|
|
|
|
@@ -602,20 +602,22 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
@@ -603,20 +603,22 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
}
|
|
|
|
|
mtu -= hlen + sizeof(struct frag_hdr);
|
|
|
|
|
|
|
|
|
@ -69,7 +69,7 @@ Closes 20532 |
|
|
|
|
goto slow_path_clean;
|
|
|
|
|
|
|
|
|
|
/* Partially cloned skb? */
|
|
|
|
|
@@ -632,8 +634,6 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
@@ -633,8 +635,6 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
|
|
|
|
|
err = 0;
|
|
|
|
|
offset = 0;
|
|
|
|
@ -78,7 +78,7 @@ Closes 20532 |
|
|
|
|
/* BUILD HEADER */
|
|
|
|
|
|
|
|
|
|
*prevhdr = NEXTHDR_FRAGMENT;
|
|
|
|
|
@@ -641,8 +641,11 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
@@ -642,8 +642,11 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
if (!tmp_hdr) {
|
|
|
|
|
IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
|
|
|
|
|
IPSTATS_MIB_FRAGFAILS);
|
|
|
|
@ -91,7 +91,7 @@ Closes 20532 |
|
|
|
|
|
|
|
|
|
__skb_pull(skb, hlen);
|
|
|
|
|
fh = (struct frag_hdr *)__skb_push(skb, sizeof(struct frag_hdr));
|
|
|
|
|
@@ -740,7 +743,6 @@ slow_path:
|
|
|
|
|
@@ -741,7 +744,6 @@ slow_path:
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
*prevhdr = NEXTHDR_FRAGMENT;
|
|
|
|
|