Message ID | 20211229200947.2862255-1-willemdebruijn.kernel@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | fb7bc9204095090731430c8921f9e629740c110a |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] ipv6: raw: check passed optlen before reading | expand |
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Wed, 29 Dec 2021 15:09:47 -0500 you wrote: > From: Tamir Duberstein <tamird@gmail.com> > > Add a check that the user-provided option is at least as long as the > number of bytes we intend to read. Before this patch we would blindly > read sizeof(int) bytes even in cases where the user passed > optlen<sizeof(int), which would potentially read garbage or fault. > > [...] Here is the summary with links: - [net] ipv6: raw: check passed optlen before reading https://git.kernel.org/netdev/net/c/fb7bc9204095 You are awesome, thank you!
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 60f1e4f5be5a..c51d5ce3711c 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -1020,6 +1020,9 @@ static int do_rawv6_setsockopt(struct sock *sk, int level, int optname, struct raw6_sock *rp = raw6_sk(sk); int val; + if (optlen < sizeof(val)) + return -EINVAL; + if (copy_from_sockptr(&val, optval, sizeof(val))) return -EFAULT;