mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
net: Make copy_safe_from_sockptr() match documentation
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: 6309863b31
("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>
This commit is contained in:
parent
a03b18a71c
commit
eb94b7bb10
@ -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_struct_from_sockptr(void *dst, size_t ksize,
|
static inline int copy_struct_from_sockptr(void *dst, size_t ksize,
|
||||||
|
Loading…
Reference in New Issue
Block a user