WSL2-Linux-Kernel/net/ipv6
Tamir Duberstein ec33da9ae0 ipv6: raw: check passed optlen before reading
[ Upstream commit fb7bc92040 ]

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.

Discovered by new tests in https://github.com/google/gvisor/pull/6957 .

The original get_user call predates history in the git repo.

Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/20211229200947.2862255-1-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-11 15:35:18 +01:00
..
ila
netfilter netfilter: ip6t_rt: fix rt0_hdr parsing in rt_mt6 2021-10-14 23:08:35 +02:00
Kconfig ipv6: ioam: Support for IOAM injection with lwtunnels 2021-07-21 08:14:33 -07:00
Makefile ipv6: ioam: Support for IOAM injection with lwtunnels 2021-07-21 08:14:33 -07:00
addrconf.c gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE 2021-11-18 19:16:19 +01:00
addrconf_core.c
addrlabel.c
af_inet6.c net: ipv6: add fib6_nh_release_dsts stub 2021-12-01 09:04:49 +01:00
ah6.c xfrm: remove hdr_offset indirection 2021-06-11 14:48:50 +02:00
anycast.c
calipso.c
datagram.c
esp6.c ipv6: check return value of ipv6_skip_exthdr 2021-12-08 09:04:40 +01:00
esp6_offload.c xfrm: remove description from xfrm_type struct 2021-06-09 09:38:52 +02:00
exthdrs.c ipv6: exthdrs: get rid of indirect calls in ip6_parse_tlv() 2021-08-04 10:34:40 +01:00
exthdrs_core.c
exthdrs_offload.c
fib6_notifier.c
fib6_rules.c ipv6: fix memory leak in fib6_rule_suppress 2021-12-08 09:04:43 +01:00
fou6.c
icmp.c ipv6: ICMPV6: add response to ICMPV6 RFC 8335 PROBE messages 2021-06-28 14:29:45 -07:00
inet6_connection_sock.c
inet6_hashtables.c net: prefer socket bound to interface when not in VRF 2021-10-07 07:27:55 -07:00
ioam6.c ipv6: ioam: move the check for undefined bits 2021-10-12 11:49:49 +01:00
ioam6_iptunnel.c ipv6: ioam: move the check for undefined bits 2021-10-12 11:49:49 +01:00
ip6_checksum.c
ip6_fib.c ipv6: delay fib6_sernum increase in fib6_add 2021-09-13 13:00:53 +01:00
ip6_flowlabel.c
ip6_gre.c ip6_gre: Revert "ip6_gre: add validation for csum_start" 2021-09-06 16:41:54 +01:00
ip6_icmp.c
ip6_input.c
ip6_offload.c
ip6_offload.h
ip6_output.c ipv6: fix typos in __ip6_finish_output() 2021-12-01 09:04:49 +01:00
ip6_tunnel.c ip_tunnel: use ndo_siocdevprivate 2021-07-27 20:11:44 +01:00
ip6_udp_tunnel.c
ip6_vti.c ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate 2022-01-11 15:35:17 +01:00
ip6mr.c net: Remove redundant if statements 2021-08-05 13:27:50 +01:00
ipcomp6.c xfrm: remove hdr_offset indirection 2021-06-11 14:48:50 +02:00
ipv6_sockglue.c net/ipv4/ipv6: Replace one-element arraya with flexible-array members 2021-08-05 11:46:42 +01:00
mcast.c ipv6: change return type from int to void for mld_process_v2 2021-09-02 11:29:55 +01:00
mcast_snoop.c net: bridge: mcast: fix broken length + header check for MRDv6 Adv. 2021-04-27 14:02:06 -07:00
mip6.c xfrm: ipv6: move mip6_rthdr_offset into xfrm core 2021-06-11 14:48:50 +02:00
ndisc.c ipv6: add IFLA_INET6_RA_MTU to expose mtu value 2021-08-27 17:29:18 -07:00
netfilter.c netfilter: Dissect flow after packet mangling 2021-04-18 22:04:16 +02:00
output_core.c ipv6: use prandom_u32() for ID generation 2021-05-31 22:12:08 -07:00
ping.c
proc.c
protocol.c
raw.c ipv6: raw: check passed optlen before reading 2022-01-11 15:35:18 +01:00
reassembly.c ipv6: record frag_max_size in atomic fragments in input path 2021-05-21 15:02:25 -07:00
route.c ipv6: Do cleanup if attribute validation fails in multipath route 2022-01-11 15:35:17 +01:00
rpl.c
rpl_iptunnel.c
seg6.c net: Remove redundant assignment to err 2021-04-29 15:34:15 -07:00
seg6_hmac.c
seg6_iptunnel.c seg6: fix the iif in the IPv6 socket control block 2021-12-14 10:57:09 +01:00
seg6_local.c ipv6: seg6: remove duplicated include 2021-08-31 12:41:47 +01:00
sit.c sit: do not call ipip6_dev_free() from sit_init_net() 2021-12-22 09:32:44 +01:00
syncookies.c
sysctl_net_ipv6.c ipv6: ioam: Data plane support for Pre-allocated Trace 2021-07-21 08:14:33 -07:00
tcp_ipv6.c inet: fully convert sk->sk_rx_dst to RCU rules 2021-12-29 12:28:42 +01:00
tcpv6_offload.c
tunnel6.c
udp.c udp: using datalen to cap ipv6 udp max gso segments 2022-01-05 12:42:35 +01:00
udp_impl.h
udp_offload.c
udplite.c
xfrm6_input.c
xfrm6_output.c net: ipv6: fix return value of ip6_skb_dst_mtu 2021-07-02 11:57:01 -07:00
xfrm6_policy.c
xfrm6_protocol.c
xfrm6_state.c
xfrm6_tunnel.c xfrm: remove description from xfrm_type struct 2021-06-09 09:38:52 +02:00