|
|
|
@ -44,7 +44,7 @@ Closes 20532 |
|
|
|
|
|
|
|
|
|
--- a/net/ipv6/ip6_output.c
|
|
|
|
|
+++ b/net/ipv6/ip6_output.c
|
|
|
|
|
@@ -594,20 +594,22 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
@@ -597,20 +597,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? */
|
|
|
|
|
@@ -624,8 +626,6 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
@@ -627,8 +629,6 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
|
|
|
|
|
err = 0;
|
|
|
|
|
offset = 0;
|
|
|
|
@ -78,7 +78,7 @@ Closes 20532 |
|
|
|
|
/* BUILD HEADER */
|
|
|
|
|
|
|
|
|
|
*prevhdr = NEXTHDR_FRAGMENT;
|
|
|
|
|
@@ -633,8 +633,11 @@ int ip6_fragment(struct sk_buff *skb, in
|
|
|
|
|
@@ -636,8 +636,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));
|
|
|
|
|
@@ -732,7 +735,6 @@ slow_path:
|
|
|
|
|
@@ -735,7 +738,6 @@ slow_path:
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
*prevhdr = NEXTHDR_FRAGMENT;
|
|
|
|
|