From: Jakub Kicinski Date: Sun, 12 Apr 2026 18:23:52 +0000 (-0700) Subject: Merge branch 'ynl-ethtool-netlink-fix-nla_len-overflow-for-large-string-sets' X-Git-Tag: v7.1-rc1~173^2~28 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=200df94709118d58f2ee3b398e63b2b03ac9b4d6;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'ynl-ethtool-netlink-fix-nla_len-overflow-for-large-string-sets' Hangbin Liu says: ==================== ynl/ethtool/netlink: fix nla_len overflow for large string sets This series addresses a silent data corruption issue triggered when ynl retrieves string sets from NICs with a large number of statistics entries (e.g. mlx5_core with thousands of ETH_SS_STATS strings). The root cause is that struct nlattr.nla_len is a __u16 (max 65535 bytes). When a NIC exports enough statistics strings, the ETHTOOL_A_STRINGSET_STRINGS nest built by strset_fill_set() exceeds this limit. nla_nest_end() silently truncates the length on assignment, producing a corrupted netlink message. Patch 1 moves ethtool.py to selftest. Patch 2 improves the ethtool tool: rename the doit/dumpit helpers to do_set/do_get and convert do_get to use ynl.do() with an explicit device header instead of a full dump with client-side filtering. Patch 3 adds a --dbg-small-recv option to the YNL ethtool tool, matching the same option already present in cli.py, to help debug netlink message size issues Patch 4 adds a new helper nla_nest_end_safe() to check whether the nla_len is overflow and return -EMSGSIZE early if so. Patch 5 uses the new helper in ethtool to make sure the ethtool doesn't reply a corrupted netlink message. ==================== Link: https://patch.msgid.link/20260408-b4-ynl_ethtool-v2-0-7623a5e8f70b@gmail.com Signed-off-by: Jakub Kicinski --- 200df94709118d58f2ee3b398e63b2b03ac9b4d6