mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
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 <mhal@rbox.co>
Link: https://patch.msgid.link/20241111-sockptr-copy-ret-fix-v1-1-a520083a93fb@rbox.co
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
9b242c4232
commit
a0b8fd37fd
@@ -77,7 +77,9 @@ static inline int copy_safe_from_sockptr(void *dst, size_t ksize,
|
|||||||
{
|
{
|
||||||
if (optlen < ksize)
|
if (optlen < ksize)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
return copy_from_sockptr(dst, optval, ksize);
|
if (copy_from_sockptr(dst, optval, ksize))
|
||||||
|
return -EFAULT;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int copy_to_sockptr_offset(sockptr_t dst, size_t offset,
|
static inline int copy_to_sockptr_offset(sockptr_t dst, size_t offset,
|
||||||
|
|||||||
Reference in New Issue
Block a user