diff options
author | 2024-04-09 17:01:02 -0700 | |
---|---|---|
committer | 2024-04-09 17:01:03 -0700 | |
commit | 7b6575c63f6df221c7343da761cd3b01e8fa36e1 (patch) | |
tree | b766a1fb574e5c5b67eb79643363ab7e00432378 /net | |
parent | ipv4/route: avoid unused-but-set-variable warning (diff) | |
parent | nfc: llcp: fix nfc_llcp_setsockopt() unsafe copies (diff) | |
download | wireguard-linux-7b6575c63f6df221c7343da761cd3b01e8fa36e1.tar.xz wireguard-linux-7b6575c63f6df221c7343da761cd3b01e8fa36e1.zip |
Merge branch 'net-start-to-replace-copy_from_sockptr'
Eric Dumazet says:
====================
net: start to replace copy_from_sockptr()
We got several syzbot reports about unsafe copy_from_sockptr()
calls. After fixing some of them, it appears that we could
use a new helper to factorize all the checks in one place.
This series targets net tree, we can later start converting
many call sites in net-next.
====================
Link: https://lore.kernel.org/r/20240408082845.3957374-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/nfc/llcp_sock.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c index 819157bbb5a2..d5344563e525 100644 --- a/net/nfc/llcp_sock.c +++ b/net/nfc/llcp_sock.c @@ -252,10 +252,10 @@ static int nfc_llcp_setsockopt(struct socket *sock, int level, int optname, break; } - if (copy_from_sockptr(&opt, optval, sizeof(u32))) { - err = -EFAULT; + err = copy_safe_from_sockptr(&opt, sizeof(opt), + optval, optlen); + if (err) break; - } if (opt > LLCP_MAX_RW) { err = -EINVAL; @@ -274,10 +274,10 @@ static int nfc_llcp_setsockopt(struct socket *sock, int level, int optname, break; } - if (copy_from_sockptr(&opt, optval, sizeof(u32))) { - err = -EFAULT; + err = copy_safe_from_sockptr(&opt, sizeof(opt), + optval, optlen); + if (err) break; - } if (opt > LLCP_MAX_MIUX) { err = -EINVAL; |