Message ID | 20210617154252.688724-1-amcohen@nvidia.com |
---|---|
State | New |
Headers | show |
Series | [net] ethtool: strset: Fix reply_size value | expand |
On Thu, Jun 17, 2021 at 06:42:52PM +0300, Amit Cohen wrote: > strset_reply_size() does not take into account the size required for the > 'ETHTOOL_A_STRSET_STRINGSETS' nested attribute. > Since commit 4d1fb7cde0cc ("ethtool: add a stricter length check") this > results in the following warning in the kernel log: > > ethnl cmd 1: calculated reply length 2236, but consumed 2240 > WARNING: CPU: 2 PID: 30549 at net/ethtool/netlink.c:360 ethnl_default_doit+0x29f/0x310 > > Add the appropriate size to the calculation. > > Fixes: 71921690f974 ("ethtool: provide string sets with STRSET_GET request") > Signed-off-by: Amit Cohen <amcohen@nvidia.com> > Reviewed-by: Jiri Pirko <jiri@nvidia.com> > Reviewed-by: Ido Schimmel <idosch@nvidia.com> > Tested-by: Ido Schimmel <idosch@nvidia.com> Ha, seems this is addressed by commit e175aef90269 ("ethtool: strset: fix message length calculation") in net.git which actually motivated commit 4d1fb7cde0cc ("ethtool: add a stricter length check"). The former is still not in net-next.git, which is why the warning is triggered there. The patch can be dropped.
On Thu, 17 Jun 2021 19:33:27 +0300 Ido Schimmel wrote: > On Thu, Jun 17, 2021 at 06:29:23PM +0200, Michal Kubecek wrote: > > I believe this issue has been already fixed in net tree by commit > > e175aef90269 ("ethtool: strset: fix message length calculation") but as > > this commit has not been merged into net-next yet, you could hit it with > > the stricter check. > > Yea. I reached the same conclusion :/ Ah damn, I should have waited for the merge, sorry about that :S
diff --git a/net/ethtool/strset.c b/net/ethtool/strset.c index b3029fff715d..86dcb6b099b3 100644 --- a/net/ethtool/strset.c +++ b/net/ethtool/strset.c @@ -365,7 +365,7 @@ static int strset_reply_size(const struct ethnl_req_info *req_base, len += ret; } - return len; + return nla_total_size(len); } /* fill one string into reply */