]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ethtool: rss: fix indir_table and hkey leak on get_rxfh failure
authorJakub Kicinski <kuba@kernel.org>
Fri, 22 May 2026 23:06:45 +0000 (16:06 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 26 May 2026 15:17:56 +0000 (08:17 -0700)
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>
net/ethtool/rss.c

index 458a4a7907e42fb79c5f7e9ec5496703d20c966b..9fb675d2923264d7c0d9aee7057558ccbffda8f7 100644 (file)
@@ -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;