aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
authorJakub Kicinski <kuba@kernel.org>2026-05-22 16:06:45 -0700
committerJakub Kicinski <kuba@kernel.org>2026-05-26 08:17:56 -0700
commit266297692f97008ca48bc311775c087c59bd7fe3 (patch)
tree6919ef3fecbb939739e7ff93a393b08662c427a0 /net
parent8d60141a32875248ef71d49c9920fa5e2aa40b29 (diff)
downloadlinux-next-history-266297692f97008ca48bc311775c087c59bd7fe3.tar.gz
ethtool: rss: fix indir_table and hkey leak on get_rxfh failure
rss_prepare_get() allocates the indirection table and hash key buffer via rss_get_data_alloc(), then calls ops->get_rxfh() to populate them. If get_rxfh() fails, the function returns an error without freeing the allocation. Fixes: 4f038a6a02d2 ("net: ethtool: Don't call .cleanup_data when prepare_data fails") Link: https://patch.msgid.link/20260522230647.1705600-5-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net')
-rw-r--r--net/ethtool/rss.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ethtool/rss.c b/net/ethtool/rss.c
index 458a4a7907e42..9fb675d292326 100644
--- a/net/ethtool/rss.c
+++ b/net/ethtool/rss.c
@@ -170,8 +170,10 @@ rss_prepare_get(const struct rss_req_info *request, struct net_device *dev,
rxfh.key = data->hkey;
ret = ops->get_rxfh(dev, &rxfh);
- if (ret)
+ if (ret) {
+ rss_get_data_free(data);
goto out_unlock;
+ }
data->hfunc = rxfh.hfunc;
data->input_xfrm = rxfh.input_xfrm;