diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ip_output.c | 6 | ||||
-rw-r--r-- | net/ipv4/ping.c | 14 | ||||
-rw-r--r-- | net/ipv4/raw.c | 2 | ||||
-rw-r--r-- | net/ipv4/tcp_input.c | 2 |
4 files changed, 11 insertions, 13 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index b50861b22b6b..f998bc87ae38 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -755,13 +755,11 @@ ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk | |||
755 | struct msghdr *msg = from; | 755 | struct msghdr *msg = from; |
756 | 756 | ||
757 | if (skb->ip_summed == CHECKSUM_PARTIAL) { | 757 | if (skb->ip_summed == CHECKSUM_PARTIAL) { |
758 | /* XXX: stripping const */ | 758 | if (copy_from_iter(to, len, &msg->msg_iter) != len) |
759 | if (memcpy_fromiovecend(to, (struct iovec *)msg->msg_iter.iov, offset, len) < 0) | ||
760 | return -EFAULT; | 759 | return -EFAULT; |
761 | } else { | 760 | } else { |
762 | __wsum csum = 0; | 761 | __wsum csum = 0; |
763 | /* XXX: stripping const */ | 762 | if (csum_and_copy_from_iter(to, len, &csum, &msg->msg_iter) != len) |
764 | if (csum_partial_copy_fromiovecend(to, (struct iovec *)msg->msg_iter.iov, offset, len, &csum) < 0) | ||
765 | return -EFAULT; | 763 | return -EFAULT; |
766 | skb->csum = csum_block_add(skb->csum, csum, odd); | 764 | skb->csum = csum_block_add(skb->csum, csum, odd); |
767 | } | 765 | } |
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c index 9e15ba701401..e9f66e1cda50 100644 --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c | |||
@@ -599,18 +599,18 @@ int ping_getfrag(void *from, char *to, | |||
599 | struct pingfakehdr *pfh = (struct pingfakehdr *)from; | 599 | struct pingfakehdr *pfh = (struct pingfakehdr *)from; |
600 | 600 | ||
601 | if (offset == 0) { | 601 | if (offset == 0) { |
602 | if (fraglen < sizeof(struct icmphdr)) | 602 | fraglen -= sizeof(struct icmphdr); |
603 | if (fraglen < 0) | ||
603 | BUG(); | 604 | BUG(); |
604 | if (csum_partial_copy_fromiovecend(to + sizeof(struct icmphdr), | 605 | if (csum_and_copy_from_iter(to + sizeof(struct icmphdr), |
605 | pfh->msg->msg_iter.iov, 0, fraglen - sizeof(struct icmphdr), | 606 | fraglen, &pfh->wcheck, |
606 | &pfh->wcheck)) | 607 | &pfh->msg->msg_iter) != fraglen) |
607 | return -EFAULT; | 608 | return -EFAULT; |
608 | } else if (offset < sizeof(struct icmphdr)) { | 609 | } else if (offset < sizeof(struct icmphdr)) { |
609 | BUG(); | 610 | BUG(); |
610 | } else { | 611 | } else { |
611 | if (csum_partial_copy_fromiovecend | 612 | if (csum_and_copy_from_iter(to, fraglen, &pfh->wcheck, |
612 | (to, pfh->msg->msg_iter.iov, offset - sizeof(struct icmphdr), | 613 | &pfh->msg->msg_iter) != fraglen) |
613 | fraglen, &pfh->wcheck)) | ||
614 | return -EFAULT; | 614 | return -EFAULT; |
615 | } | 615 | } |
616 | 616 | ||
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 2c9d252072a2..f027a708b7e0 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c | |||
@@ -382,7 +382,7 @@ static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, | |||
382 | 382 | ||
383 | skb->transport_header = skb->network_header; | 383 | skb->transport_header = skb->network_header; |
384 | err = -EFAULT; | 384 | err = -EFAULT; |
385 | if (memcpy_fromiovecend((void *)iph, msg->msg_iter.iov, 0, length)) | 385 | if (memcpy_from_msg(iph, msg, length)) |
386 | goto error_free; | 386 | goto error_free; |
387 | 387 | ||
388 | iphlen = iph->ihl * 4; | 388 | iphlen = iph->ihl * 4; |
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 93c74829cbce..71fb37c70581 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -4368,7 +4368,7 @@ int tcp_send_rcvq(struct sock *sk, struct msghdr *msg, size_t size) | |||
4368 | if (tcp_try_rmem_schedule(sk, skb, skb->truesize)) | 4368 | if (tcp_try_rmem_schedule(sk, skb, skb->truesize)) |
4369 | goto err_free; | 4369 | goto err_free; |
4370 | 4370 | ||
4371 | if (copy_from_iter(skb_put(skb, size), size, &msg->msg_iter) != size) | 4371 | if (memcpy_from_msg(skb_put(skb, size), msg, size)) |
4372 | goto err_free; | 4372 | goto err_free; |
4373 | 4373 | ||
4374 | TCP_SKB_CB(skb)->seq = tcp_sk(sk)->rcv_nxt; | 4374 | TCP_SKB_CB(skb)->seq = tcp_sk(sk)->rcv_nxt; |