wifi: mac80211: fix memory leak in ieee80211_if_add()
authorZhengchao Shao <shaozhengchao@huawei.com>
Thu, 17 Nov 2022 06:45:00 +0000 (14:45 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:14:14 +0000 (13:14 +0100)
[ Upstream commit 13e5afd3d773c6fc6ca2b89027befaaaa1ea7293 ]

When register_netdevice() failed in ieee80211_if_add(), ndev->tstats
isn't released. Fix it.

Fixes: 5a490510ba5f ("mac80211: use per-CPU TX/RX statistics")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Link: https://lore.kernel.org/r/20221117064500.319983-1-shaozhengchao@huawei.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mac80211/iface.c

index 041859b5b71d0cdddd48d698e09e9863dcb08128..a3347f245782467af756b7b37a1f06472d2dc892 100644 (file)
@@ -2059,6 +2059,7 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name,
 
                ret = cfg80211_register_netdevice(ndev);
                if (ret) {
+                       ieee80211_if_free(ndev);
                        free_netdev(ndev);
                        return ret;
                }