linux_dsm_epyc7002/net/ethtool
Jakub Kicinski fb3a948143 ethtool: strset: fix message length calculation
[ Upstream commit e175aef902697826d344ce3a12189329848fe898 ]

Outer nest for ETHTOOL_A_STRSET_STRINGSETS is not accounted for.
This may result in ETHTOOL_MSG_STRSET_GET producing a warning like:

    calculated message payload length (684) not sufficient
    WARNING: CPU: 0 PID: 30967 at net/ethtool/netlink.c:369 ethnl_default_doit+0x87a/0xa20

and a splat.

As usually with such warnings three conditions must be met for the warning
to trigger:
 - there must be no skb size rounding up (e.g. reply_size of 684);
 - string set must be per-device (so that the header gets populated);
 - the device name must be at least 12 characters long.

all in all with current user space it looks like reading priv flags
is the only place this could potentially happen. Or with syzbot :)

Reported-by: syzbot+59aa77b92d06cd5a54f2@syzkaller.appspotmail.com
Fixes: 71921690f9 ("ethtool: provide string sets with STRSET_GET request")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-06-23 14:42:45 +02:00
..
bitset.c ethtool: fix stack overflow in ethnl_parse_bitset() 2020-12-09 15:50:38 -08:00
bitset.h ethtool: add ethnl_parse_bitset() helper 2020-03-12 15:32:32 -07:00
cabletest.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
channels.c ethtool: fix the check logic of at least one channel for RX/TX 2021-03-17 17:06:16 +01:00
coalesce.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
common.c ethtool: Add 100base-FX link mode entries 2020-09-19 16:54:35 -07:00
common.h ethtool: add tunnel info interface 2020-07-10 13:54:00 -07:00
debug.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
eee.c ethtool: fix incorrect datatype in set_eee ops 2021-04-14 08:41:58 +02:00
features.c ethtool: netlink: add missing netdev_features_change() call 2020-11-09 17:15:34 -08:00
ioctl.c ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user() 2021-05-19 10:12:57 +02:00
linkinfo.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
linkmodes.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
linkstate.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
Makefile ethtool: add tunnel info interface 2020-07-10 13:54:00 -07:00
netlink.c ethtool: fix missing NLM_F_MULTI flag when dumping 2021-05-19 10:13:08 +02:00
netlink.h ethtool: strset: allow ETHTOOL_A_STRSET_COUNTS_ONLY attr 2020-10-08 16:06:01 -07:00
pause.c ethtool: pause: make sure we init driver stats 2021-04-21 13:00:57 +02:00
privflags.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
rings.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
strset.c ethtool: strset: fix message length calculation 2021-06-23 14:42:45 +02:00
tsinfo.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
tunnels.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
wol.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00