Message ID | 20221117064500.319983-1-shaozhengchao@huawei.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | wifi: mac80211: fix memory leak in ieee80211_if_add() | expand |
On 11/17/22 07:45, Zhengchao Shao wrote: > 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> > --- > net/mac80211/iface.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c > index dd9ac1f7d2ea..46f08ec5ed76 100644 > --- a/net/mac80211/iface.c > +++ b/net/mac80211/iface.c > @@ -2258,6 +2258,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; > } Note: I will send a revert of this buggy patch, this was adding a double free.
On 2023/1/13 16:15, Eric Dumazet wrote: > > On 11/17/22 07:45, Zhengchao Shao wrote: >> 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> >> --- >> net/mac80211/iface.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c >> index dd9ac1f7d2ea..46f08ec5ed76 100644 >> --- a/net/mac80211/iface.c >> +++ b/net/mac80211/iface.c >> @@ -2258,6 +2258,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; >> } > > > Note: I will send a revert of this buggy patch, this was adding a double > free. > > Hi Eric: Thank you very much for pointing out my problem. I'll be more rigorous in the future. Zhengchao Shao >
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index dd9ac1f7d2ea..46f08ec5ed76 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -2258,6 +2258,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; }
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> --- net/mac80211/iface.c | 1 + 1 file changed, 1 insertion(+)