aboutsummaryrefslogtreecommitdiff
path: root/include/linux/sockptr.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/sockptr.h')
-rw-r--r--include/linux/sockptr.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/sockptr.h b/include/linux/sockptr.h
index fc5a206c4043..3e6c8e9d67ae 100644
--- a/include/linux/sockptr.h
+++ b/include/linux/sockptr.h
@@ -53,6 +53,8 @@ static inline int copy_from_sockptr_offset(void *dst, sockptr_t src,
/* Deprecated.
* This is unsafe, unless caller checked user provided optlen.
* Prefer copy_safe_from_sockptr() instead.
+ *
+ * Returns 0 for success, or number of bytes not copied on error.
*/
static inline int copy_from_sockptr(void *dst, sockptr_t src, size_t size)
{
@@ -77,7 +79,9 @@ static inline int copy_safe_from_sockptr(void *dst, size_t ksize,
{
if (optlen < ksize)
return -EINVAL;
- return copy_from_sockptr(dst, optval, ksize);
+ if (copy_from_sockptr(dst, optval, ksize))
+ return -EFAULT;
+ return 0;
}
static inline int copy_struct_from_sockptr(void *dst, size_t ksize,