* [PATCH net] ethtool: strset: fix message length calculation
@ 2021-06-12 1:49 Jakub Kicinski
2021-06-14 19:20 ` patchwork-bot+netdevbpf
0 siblings, 1 reply; 2+ messages in thread
From: Jakub Kicinski @ 2021-06-12 1:49 UTC (permalink / raw)
To: davem
Cc: netdev, mkubecek, f.fainelli, Jakub Kicinski,
syzbot+59aa77b92d06cd5a54f2
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: 71921690f974 ("ethtool: provide string sets with STRSET_GET request")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
net/ethtool/strset.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/ethtool/strset.c b/net/ethtool/strset.c
index b3029fff715d..2d51b7ab4dc5 100644
--- a/net/ethtool/strset.c
+++ b/net/ethtool/strset.c
@@ -353,6 +353,8 @@ static int strset_reply_size(const struct ethnl_req_info *req_base,
int len = 0;
int ret;
+ len += nla_total_size(0); /* ETHTOOL_A_STRSET_STRINGSETS */
+
for (i = 0; i < ETH_SS_COUNT; i++) {
const struct strset_info *set_info = &data->sets[i];
--
2.31.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net] ethtool: strset: fix message length calculation
2021-06-12 1:49 [PATCH net] ethtool: strset: fix message length calculation Jakub Kicinski
@ 2021-06-14 19:20 ` patchwork-bot+netdevbpf
0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-06-14 19:20 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, mkubecek, f.fainelli, syzbot+59aa77b92d06cd5a54f2
Hello:
This patch was applied to netdev/net.git (refs/heads/master):
On Fri, 11 Jun 2021 18:49:48 -0700 you wrote:
> 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.
>
> [...]
Here is the summary with links:
- [net] ethtool: strset: fix message length calculation
https://git.kernel.org/netdev/net/c/e175aef90269
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-06-14 19:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-12 1:49 [PATCH net] ethtool: strset: fix message length calculation Jakub Kicinski
2021-06-14 19:20 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).