diff options
Diffstat (limited to 'net/ipv6/ip6_output.c')
-rw-r--r-- | net/ipv6/ip6_output.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 1e20b64e646c..1c9bf8b5c30a 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -1512,13 +1512,14 @@ alloc_new_skb: | |||
1512 | err = -EMSGSIZE; | 1512 | err = -EMSGSIZE; |
1513 | goto error; | 1513 | goto error; |
1514 | } | 1514 | } |
1515 | if (getfrag(from, skb_frag_address(frag)+frag->size, | 1515 | if (getfrag(from, |
1516 | skb_frag_address(frag) + skb_frag_size(frag), | ||
1516 | offset, copy, skb->len, skb) < 0) { | 1517 | offset, copy, skb->len, skb) < 0) { |
1517 | err = -EFAULT; | 1518 | err = -EFAULT; |
1518 | goto error; | 1519 | goto error; |
1519 | } | 1520 | } |
1520 | sk->sk_sndmsg_off += copy; | 1521 | sk->sk_sndmsg_off += copy; |
1521 | frag->size += copy; | 1522 | skb_frag_size_add(frag, copy); |
1522 | skb->len += copy; | 1523 | skb->len += copy; |
1523 | skb->data_len += copy; | 1524 | skb->data_len += copy; |
1524 | skb->truesize += copy; | 1525 | skb->truesize += copy; |