1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-24 09:13:20 -05:00
linux/net/ethtool
Jakub Kicinski e175aef902 ethtool: strset: fix message length calculation
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>
2021-06-14 12:14:24 -07:00
..
bitset.c
bitset.h
cabletest.c
channels.c
coalesce.c
common.c ethtool: Add lanes parameter for ETHTOOL_LINK_MODE_10000baseR_FEC_BIT 2021-04-07 14:53:04 -07:00
common.h net: ethtool: Export helpers for getting EEPROM info 2021-04-11 16:34:56 -07:00
debug.c
eee.c ethtool: fix incorrect datatype in set_eee ops 2021-04-06 16:42:25 -07:00
eeprom.c ethtool: Fix NULL pointer dereference during module EEPROM dump 2021-06-07 13:10:34 -07:00
features.c
fec.c ethtool: add FEC statistics 2021-04-15 17:08:29 -07:00
ioctl.c net: ethtool: clear heap allocations for ethtool function 2021-06-09 13:53:31 -07:00
linkinfo.c
linkmodes.c
linkstate.c
Makefile ethtool: add a new command for reading standard stats 2021-04-16 16:59:20 -07:00
netlink.c ethtool: fix missing NLM_F_MULTI flag when dumping 2021-05-05 12:41:10 -07:00
netlink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-17 11:08:07 -07:00
pause.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-17 11:08:07 -07:00
privflags.c
rings.c
stats.c ethtool: stats: Fix a copy-paste error 2021-05-19 11:57:33 -07:00
strset.c ethtool: strset: fix message length calculation 2021-06-14 12:14:24 -07:00
tsinfo.c
tunnels.c
wol.c