Skip to content

Commit a0b8fd3

Browse files
mmhalgregkh
authored andcommitted
net: Make copy_safe_from_sockptr() match documentation
commit eb94b7bb10109a14a5431a67e5d8e31cfa06b395 upstream. copy_safe_from_sockptr() return copy_from_sockptr() return copy_from_sockptr_offset() return copy_from_user() copy_from_user() does not return an error on fault. Instead, it returns a number of bytes that were not copied. Have it handled. Patch has a side effect: it un-breaks garbage input handling of nfc_llcp_setsockopt() and mISDN's data_sock_setsockopt(). Fixes: 6309863b31dd ("net: add copy_safe_from_sockptr() helper") Signed-off-by: Michal Luczaj <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 9b242c4 commit a0b8fd3

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

include/linux/sockptr.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ static inline int copy_safe_from_sockptr(void *dst, size_t ksize,
7777
{
7878
if (optlen < ksize)
7979
return -EINVAL;
80-
return copy_from_sockptr(dst, optval, ksize);
80+
if (copy_from_sockptr(dst, optval, ksize))
81+
return -EFAULT;
82+
return 0;
8183
}
8284

8385
static inline int copy_to_sockptr_offset(sockptr_t dst, size_t offset,

0 commit comments

Comments
 (0)