|
@@ -802,11 +802,11 @@ ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk
|
|
struct msghdr *msg = from;
|
|
struct msghdr *msg = from;
|
|
|
|
|
|
if (skb->ip_summed == CHECKSUM_PARTIAL) {
|
|
if (skb->ip_summed == CHECKSUM_PARTIAL) {
|
|
- if (copy_from_iter(to, len, &msg->msg_iter) != len)
|
|
|
|
|
|
+ if (!copy_from_iter_full(to, len, &msg->msg_iter))
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
} else {
|
|
} else {
|
|
__wsum csum = 0;
|
|
__wsum csum = 0;
|
|
- if (csum_and_copy_from_iter(to, len, &csum, &msg->msg_iter) != len)
|
|
|
|
|
|
+ if (!csum_and_copy_from_iter_full(to, len, &csum, &msg->msg_iter))
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
skb->csum = csum_block_add(skb->csum, csum, odd);
|
|
skb->csum = csum_block_add(skb->csum, csum, odd);
|
|
}
|
|
}
|