Eric Dumazet
a3210f911e
sch_red: fix off-by-one checks in red_check_params()
[ Upstream commit 3a87571f0ffc51ba3bf3ecdb6032861d0154b164 ]
This fixes following syzbot report:
UBSAN: shift-out-of-bounds in ./include/net/red.h:237:23
shift exponent 32 is too large for 32-bit type 'unsigned int'
CPU: 1 PID: 8418 Comm: syz-executor170 Not tainted 5.12.0-rc4-next-20210324-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:79 [inline]
dump_stack+0x141/0x1d7 lib/dump_stack.c:120
ubsan_epilogue+0xb/0x5a lib/ubsan.c:148
__ubsan_handle_shift_out_of_bounds.cold+0xb1/0x181 lib/ubsan.c:327
red_set_parms include/net/red.h:237 [inline]
choke_change.cold+0x3c/0xc8 net/sched/sch_choke.c:414
qdisc_create+0x475/0x12f0 net/sched/sch_api.c:1247
tc_modify_qdisc+0x4c8/0x1a50 net/sched/sch_api.c:1663
rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5553
netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2502
netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline]
netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338
netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927
sock_sendmsg_nosec net/socket.c:654 [inline]
sock_sendmsg+0xcf/0x120 net/socket.c:674
____sys_sendmsg+0x6e8/0x810 net/socket.c:2350
___sys_sendmsg+0xf3/0x170 net/socket.c:2404
__sys_sendmsg+0xe5/0x1b0 net/socket.c:2433
do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x43f039
Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffdfa725168 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 0000000000400488 RCX: 000000000043f039
RDX: 0000000000000000 RSI: 0000000020000040 RDI: 0000000000000004
RBP: 0000000000403020 R08: 0000000000400488 R09: 0000000000400488
R10: 0000000000400488 R11: 0000000000000246 R12: 00000000004030b0
R13: 0000000000000000 R14: 00000000004ac018 R15: 0000000000400488
Fixes: 8afa10cbe281 ("net_sched: red: Avoid illegal values")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
2021-04-16 11:59:07 +02:00 |
| .. |
|
9p
|
|
|
|
bluetooth
|
Bluetooth: Disconnect if E0 is used for Level 4
|
2020-10-17 11:02:19 +02:00 |
|
caif
|
caif: reduce stack size with KASAN
|
2019-05-08 07:19:07 +02:00 |
|
irda
|
|
|
|
iucv
|
s390/iucv: do not use arrays as argument
|
2015-09-21 16:03:04 -07:00 |
|
netfilter
|
netfilter: nf_tables: fix destination register zeroing
|
2020-09-12 11:47:33 +02:00 |
|
netns
|
inet: switch IP ID generator to siphash
|
2019-08-25 10:51:42 +02:00 |
|
nfc
|
NFC: Fix the number of pipes
|
2018-09-29 03:07:30 -07:00 |
|
phonet
|
phonet: fix building with clang
|
2019-03-23 13:19:44 +01:00 |
|
sctp
|
sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket
|
2020-06-30 15:38:39 -04:00 |
|
tc_act
|
net/sched: act_tunnel_key: fix NULL dereference when 'goto chain' is used
|
2018-08-24 13:12:37 +02:00 |
|
6lowpan.h
|
6lowpan: add 802.15.4 short addr slaac
|
2016-06-15 20:41:22 -07:00 |
|
act_api.h
|
net sched: fix reporting the first-time use timestamp
|
2020-06-03 08:16:25 +02:00 |
|
addrconf.h
|
ipv6: fix memory leaks on IPV6_ADDRFORM path
|
2020-08-21 11:01:55 +02:00 |
|
af_ieee802154.h
|
ieee802154: af_ieee802154: fix typo in comment.
|
2015-09-17 13:20:05 +02:00 |
|
af_rxrpc.h
|
rxrpc: Rewrite the data and ack handling code
|
2016-09-08 11:10:12 +01:00 |
|
af_unix.h
|
af_unix: split 'u->readlock' into two: 'iolock' and 'bindlock'
|
2016-09-04 13:29:29 -07:00 |
|
af_vsock.h
|
vsock: split dwork to avoid reinitializations
|
2018-08-22 07:47:13 +02:00 |
|
ah.h
|
|
|
|
arp.h
|
ipv4: Define __ipv4_neigh_lookup_noref when CONFIG_INET is disabled
|
2019-06-11 12:22:49 +02:00 |
|
atmclip.h
|
|
|
|
ax25.h
|
ax25: fix possible use-after-free
|
2019-02-23 09:05:59 +01:00 |
|
ax88796.h
|
|
|
|
bond_3ad.h
|
bonding: 3ad: apply ad_actor settings changes immediately
|
2016-02-09 04:45:49 -05:00 |
|
bond_alb.h
|
|
|
|
bond_options.h
|
|
|
|
bonding.h
|
bonding: wait for sysfs kobject destruction before freeing struct slave
|
2020-12-11 13:37:57 +01:00 |
|
busy_poll.h
|
net: un-inline sk_busy_loop()
|
2015-11-18 16:17:38 -05:00 |
|
calipso.h
|
calipso: Add a label cache.
|
2016-06-27 15:06:17 -04:00 |
|
cfg80211-wext.h
|
|
|
|
cfg80211.h
|
cfg80211/mac80211: make ieee80211_send_layer2_update a public function
|
2020-01-23 08:19:34 +01:00 |
|
cfg802154.h
|
ieee802154: add netns support
|
2016-07-08 12:20:57 +02:00 |
|
checksum.h
|
csum: Update csum_block_add to use rotate instead of byteswap
|
2016-03-13 15:01:00 -04:00 |
|
cipso_ipv4.h
|
netlabel: out of bound access in cipso_v4_validate()
|
2017-02-18 15:11:41 +01:00 |
|
cls_cgroup.h
|
cls_cgroup: get sk_classid only from full sockets
|
2016-04-19 20:09:25 -04:00 |
|
codel.h
|
codel: split into multiple files
|
2016-04-25 16:44:27 -04:00 |
|
codel_impl.h
|
codel: split into multiple files
|
2016-04-25 16:44:27 -04:00 |
|
codel_qdisc.h
|
net_sched: fq_codel: cache skb->truesize into skb->cb
|
2016-06-25 12:19:35 -04:00 |
|
compat.h
|
packet: compat support for sock_fprog
|
2016-06-09 23:41:03 -07:00 |
|
datalink.h
|
|
|
|
dcbevent.h
|
|
|
|
dcbnl.h
|
|
|
|
devlink.h
|
devlink: remove unused priv_size
|
2016-08-26 11:55:18 -07:00 |
|
dn.h
|
|
|
|
dn_dev.h
|
|
|
|
dn_fib.h
|
|
|
|
dn_neigh.h
|
netfilter: Pass net into okfn
|
2015-09-17 17:18:37 -07:00 |
|
dn_nsp.h
|
|
|
|
dn_route.h
|
|
|
|
dsa.h
|
net: dsa: add port fast ageing
|
2016-09-23 08:38:50 -04:00 |
|
dsfield.h
|
|
|
|
dst.h
|
net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb
|
2020-07-22 09:10:48 +02:00 |
|
dst_cache.h
|
net: add dst_cache support
|
2016-02-16 20:21:48 -05:00 |
|
dst_metadata.h
|
net/dst: Utility functions to build dst_metadata without supplying an skb
|
2016-09-10 20:53:55 -07:00 |
|
dst_ops.h
|
ipv4, ipv6: Pass net into __ip_local_out and __ip6_local_out
|
2015-10-08 04:27:02 -07:00 |
|
esp.h
|
|
|
|
ethoc.h
|
net/ethoc: support big-endian register layout
|
2015-09-23 15:33:15 -07:00 |
|
fib_rules.h
|
fib: add missing attribute validation for tun_id
|
2020-03-20 09:07:39 +01:00 |
|
firewire.h
|
|
|
|
flow.h
|
net: flow: Remove FLOWI_FLAG_L3MDEV_SRC flag
|
2016-09-10 23:12:53 -07:00 |
|
flow_dissector.h
|
net: sched: correct flower port blocking
|
2020-03-11 07:53:05 +01:00 |
|
flowcache.h
|
|
|
|
fou.h
|
fou: Add encap ops for IPv6 tunnels
|
2016-05-20 18:03:16 -04:00 |
|
fq.h
|
net/flow_dissector: switch to siphash
|
2019-11-10 11:23:31 +01:00 |
|
fq_impl.h
|
net/flow_dissector: switch to siphash
|
2019-11-10 11:23:31 +01:00 |
|
garp.h
|
|
|
|
gen_stats.h
|
net: sched: do not acquire qdisc spinlock in qdisc/class stats dump
|
2016-06-07 16:37:14 -07:00 |
|
genetlink.h
|
genetlink: remove genl_bind
|
2020-07-22 09:10:48 +02:00 |
|
geneve.h
|
net: Remove deprecated tunnel specific UDP offload functions
|
2016-06-17 20:23:32 -07:00 |
|
gre.h
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2016-08-18 01:17:32 -04:00 |
|
gro_cells.h
|
gro_cells: make sure device is up in gro_cells_receive()
|
2019-03-19 13:14:10 +01:00 |
|
gtp.h
|
gtp: #define #define _GTP_H_ and not #define _GTP_H
|
2016-07-25 17:55:43 -07:00 |
|
gue.h
|
|
|
|
hwbm.h
|
net: add a hardware buffer management helper API
|
2016-03-14 12:19:46 -04:00 |
|
icmp.h
|
net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
|
2021-03-03 17:44:46 +01:00 |
|
ieee80211_radiotap.h
|
mac80211: add support for radiotap timestamp field
|
2016-09-12 11:45:45 +02:00 |
|
ieee802154_netdev.h
|
mac802154: constify ieee802154_llsec_ops structure
|
2016-01-04 20:40:41 +01:00 |
|
if_inet6.h
|
IPv6: fix DESYNC_FACTOR
|
2016-10-14 10:59:15 -04:00 |
|
ila.h
|
ila: Add generic ILA translation facility
|
2015-12-15 23:25:20 -05:00 |
|
inet6_connection_sock.h
|
ipv6: remove unused in6_addr struct
|
2016-03-22 15:45:44 -04:00 |
|
inet6_hashtables.h
|
tcp/dccp: do not touch listener sk_refcnt under synflood
|
2016-04-04 22:11:20 -04:00 |
|
inet_common.h
|
ip4ip6: Support for GSO/GRO
|
2016-05-20 18:03:17 -04:00 |
|
inet_connection_sock.h
|
net: refactor bind_bucket fastreuse into helper
|
2020-09-12 11:47:38 +02:00 |
|
inet_ecn.h
|
vlan: consolidate VLAN parsing code and limit max parsing depth
|
2020-12-11 13:37:58 +01:00 |
|
inet_frag.h
|
net: IP defrag: encapsulate rbtree defrag code into callable functions
|
2019-05-02 09:32:06 +02:00 |
|
inet_hashtables.h
|
tcp/dccp: fix possible race __inet_lookup_established()
|
2020-01-04 13:41:12 +01:00 |
|
inet_sock.h
|
inet: make sure to grab rcu_read_lock before using ireq->ireq_opt
|
2018-10-18 09:13:23 +02:00 |
|
inet_timewait_sock.h
|
soreuseport: initialise timewait reuseport field
|
2018-05-16 10:08:41 +02:00 |
|
inetpeer.h
|
net: ipv4: use a dedicated counter for icmp_v4 redirect packets
|
2019-02-23 09:05:59 +01:00 |
|
ip.h
|
net/ipv4: always honour route mtu during forwarding
|
2020-10-29 09:05:31 +01:00 |
|
ip6_checksum.h
|
ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short
|
2016-03-13 23:55:13 -04:00 |
|
ip6_fib.h
|
ipv6: fix sparse warning on rt6i_node
|
2017-09-20 08:19:53 +02:00 |
|
ip6_route.h
|
net: ipv6: do not consider routes via gateways for anycast address check
|
2020-04-24 07:59:02 +02:00 |
|
ip6_tunnel.h
|
ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
|
2019-07-21 09:05:57 +02:00 |
|
ip_fib.h
|
net: ipv4: Fix memory leak in network namespace dismantle
|
2019-01-31 08:12:33 +01:00 |
|
ip_tunnels.h
|
ip_tunnel: add collect_md mode to IPIP tunnel
|
2016-09-17 10:13:07 -04:00 |
|
ip_vs.h
|
ipvs: move old_secure_tcp into struct netns_ipvs
|
2019-11-12 19:15:57 +01:00 |
|
ipcomp.h
|
|
|
|
ipconfig.h
|
|
|
|
ipv6.h
|
net: ipv6: add net argument to ip6_dst_lookup_flow
|
2020-05-20 08:15:30 +02:00 |
|
ipv6_frag.h
|
ip6: fix skb leak in ip6frag_expire_frag_queue()
|
2019-09-16 08:19:33 +02:00 |
|
ipx.h
|
|
|
|
iw_handler.h
|
wext: handle NULL extra data in iwe_stream_add_point better
|
2017-08-11 08:49:34 -07:00 |
|
kcm.h
|
kcm: Use stream parser
|
2016-08-17 19:36:23 -04:00 |
|
l3mdev.h
|
ipvlan, l3mdev: fix broken l3s mode wrt local routes
|
2019-02-06 17:33:27 +01:00 |
|
lapb.h
|
|
|
|
lib80211.h
|
|
|
|
llc.h
|
llc: avoid blocking in llc_sap_close()
|
2019-11-25 09:52:18 +01:00 |
|
llc_c_ac.h
|
|
|
|
llc_c_ev.h
|
|
|
|
llc_c_st.h
|
|
|
|
llc_conn.h
|
llc: fix sk_buff leak in llc_conn_service()
|
2019-11-06 12:18:24 +01:00 |
|
llc_if.h
|
|
|
|
llc_pdu.h
|
|
|
|
llc_s_ac.h
|
|
|
|
llc_s_ev.h
|
|
|
|
llc_s_st.h
|
|
|
|
llc_sap.h
|
|
|
|
lwtunnel.h
|
lwtunnel: valid encap attr check should return 0 when lwtunnel is disabled
|
2017-02-18 15:11:42 +01:00 |
|
mac80211.h
|
mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple of 4
|
2018-05-30 07:50:28 +02:00 |
|
mac802154.h
|
ieee802154: cleanup WARN_ON for fc fetch
|
2016-07-08 13:23:12 +02:00 |
|
mip6.h
|
|
|
|
mld.h
|
|
|
|
mpls.h
|
openvswitch: use mpls_hdr
|
2016-10-03 02:00:22 -04:00 |
|
mpls_iptunnel.h
|
mpls: multipath route support
|
2015-10-23 06:26:42 -07:00 |
|
mrp.h
|
|
|
|
ncsi.h
|
net/ncsi: Introduce ncsi_stop_dev()
|
2016-10-04 02:11:51 -04:00 |
|
ndisc.h
|
6lowpan: introduce 6lowpan-nd
|
2016-06-15 20:41:23 -07:00 |
|
neighbour.h
|
net: add annotations on hh->hh_len lockless accesses
|
2020-01-12 11:24:19 +01:00 |
|
net_namespace.h
|
netns: provide pure entropy for net_hash_mix()
|
2019-04-17 08:36:46 +02:00 |
|
net_ratelimit.h
|
|
|
|
netevent.h
|
neigh: Send a notification when DELAY_PROBE_TIME changes
|
2016-07-05 09:06:29 -07:00 |
|
netlabel.h
|
netlabel: Implement CALIPSO config functions for SMACK.
|
2016-06-27 15:06:18 -04:00 |
|
netlink.h
|
netlink: fix nla_put_{u8,u16,u32} for KASAN
|
2017-10-12 11:51:25 +02:00 |
|
netprio_cgroup.h
|
net: wrap sock->sk_cgrp_prioidx and ->sk_classid inside a struct
|
2015-12-08 22:02:33 -05:00 |
|
netrom.h
|
|
|
|
nexthop.h
|
net: fix rtnh_ok()
|
2018-05-16 10:08:41 +02:00 |
|
nl802154.h
|
ieee802154: add netns support
|
2016-07-08 12:20:57 +02:00 |
|
p8022.h
|
|
|
|
ping.h
|
net: ping: make ping_v6_sendmsg static
|
2016-03-23 22:09:58 -04:00 |
|
pkt_cls.h
|
net/sched: pkt_cls: change tc actions order to be as the user sets
|
2016-09-28 05:02:44 -04:00 |
|
pkt_sched.h
|
net: sched: convert qdisc linked list to hashtable
|
2016-08-10 17:19:02 -07:00 |
|
pptp.h
|
pptp: Refactor the struct and macros of PPTP codes
|
2016-08-15 10:55:53 -07:00 |
|
protocol.h
|
udp: Remove udp_offloads
|
2016-04-07 16:53:30 -04:00 |
|
psnap.h
|
|
|
|
raw.h
|
sock: struct proto hash function may error
|
2016-02-11 03:54:14 -05:00 |
|
rawv6.h
|
|
|
|
red.h
|
sch_red: fix off-by-one checks in red_check_params()
|
2021-04-16 11:59:07 +02:00 |
|
regulatory.h
|
regulatory: add NUL to request alpha2
|
2018-05-30 07:50:30 +02:00 |
|
request_sock.h
|
inet: reqsk_alloc() needs to take care of dead listeners
|
2016-04-04 22:11:19 -04:00 |
|
rose.h
|
|
|
|
route.h
|
ipv4: lock mtu in fnhe when received PMTU < net.ipv4.route.min_pmtu
|
2018-05-30 07:50:36 +02:00 |
|
rtnetlink.h
|
can: dev: Move device back to init netns on owning netns delete
|
2021-03-30 14:41:42 +02:00 |
|
sch_generic.h
|
sch_netem: fix rcu splat in netem_enqueue()
|
2019-11-06 12:18:25 +01:00 |
|
scm.h
|
unix: correctly track in-flight fds in sending process user_struct
|
2016-02-08 10:30:42 -05:00 |
|
secure_seq.h
|
|
|
|
slhc_vj.h
|
slip: Check if rstate is initialized before uncompressing
|
2018-04-20 08:21:07 +02:00 |
|
snmp.h
|
net: snmp: fix 64bit stats on 32bit arches
|
2016-04-28 11:49:45 -04:00 |
|
sock.h
|
net/compat: Add missing sock updates for SCM_RIGHTS
|
2020-08-21 11:02:08 +02:00 |
|
sock_reuseport.h
|
soreuseport: fix NULL ptr dereference SO_REUSEPORT after bind
|
2016-01-19 14:44:23 -05:00 |
|
Space.h
|
|
|
|
stp.h
|
|
|
|
strparser.h
|
kcm: Remove TCP specific references from kcm and strparser
|
2016-08-28 23:32:41 -04:00 |
|
switchdev.h
|
switchdev: remove FIB offload infrastructure
|
2016-09-28 04:48:00 -04:00 |
|
tcp.h
|
tcp: cache line align MAX_TCP_HEADER
|
2020-05-02 17:23:08 +02:00 |
|
tcp_states.h
|
|
|
|
timewait_sock.h
|
|
|
|
transp_v6.h
|
ipv6: add new struct ipcm6_cookie
|
2016-05-03 16:08:14 -04:00 |
|
tso.h
|
net: tso: add support for IPv6
|
2015-10-26 22:24:22 -07:00 |
|
udp.h
|
udp: must lock the socket in udp_disconnect()
|
2016-10-20 14:45:52 -04:00 |
|
udp_tunnel.h
|
vxlan: Add new UDP encapsulation offload type for VXLAN-GPE
|
2016-06-17 20:23:32 -07:00 |
|
udplite.h
|
udplite: fix partial checksum initialization
|
2018-03-11 16:21:32 +01:00 |
|
vsock_addr.h
|
|
|
|
vxlan.h
|
vxlan: fix hlist corruption
|
2017-07-21 07:42:18 +02:00 |
|
wext.h
|
|
|
|
wimax.h
|
|
|
|
x25.h
|
net: x25: fix one potential use-after-free issue
|
2018-04-13 19:48:00 +02:00 |
|
x25device.h
|
|
|
|
xfrm.h
|
xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
|
2020-10-14 09:48:16 +02:00 |