diff --git a/net/core/iovec.c b/net/core/iovec.c index 40a76ce19d9fddfb90d2b21f282135e4d1bef239..16ad45d4882b56a2c531a0a944bc31c690ff5a4b 100644 --- a/net/core/iovec.c +++ b/net/core/iovec.c @@ -112,9 +112,9 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata, continue; } copy = min_t(unsigned int, iov->iov_len - offset, len); - offset = 0; - if (copy_to_user(iov->iov_base, kdata, copy)) + if (copy_to_user(iov->iov_base + offset, kdata, copy)) return -EFAULT; + offset = 0; kdata += copy; len -= copy; }