Message ID | 20160915162117.1209-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Rejected |
Delegated to: | Kalle Valo |
Headers | show |
Colin King <colin.king@canonical.com> writes: > From: Colin Ian King <colin.king@canonical.com> > > When chan is zero mwifiex_create_custom_regdomain does not kfree > regd and we have a memory leak. Fix this by freeing regd before > the return. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c > index 3344a26..15a91f3 100644 > --- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c > +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c > @@ -1049,8 +1049,10 @@ mwifiex_create_custom_regdomain(struct mwifiex_private *priv, > enum nl80211_band band; > > chan = *buf++; > - if (!chan) > + if (!chan) { > + kfree(regd); > return NULL; > + } Bob sent a similar fix and he also did more: mwifiex: fix error handling in mwifiex_create_custom_regdomain https://patchwork.kernel.org/patch/9331337/
On 15/09/16 18:10, Kalle Valo wrote: > Colin King <colin.king@canonical.com> writes: > >> From: Colin Ian King <colin.king@canonical.com> >> >> When chan is zero mwifiex_create_custom_regdomain does not kfree >> regd and we have a memory leak. Fix this by freeing regd before >> the return. >> >> Signed-off-by: Colin Ian King <colin.king@canonical.com> >> --- >> drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c >> index 3344a26..15a91f3 100644 >> --- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c >> +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c >> @@ -1049,8 +1049,10 @@ mwifiex_create_custom_regdomain(struct mwifiex_private *priv, >> enum nl80211_band band; >> >> chan = *buf++; >> - if (!chan) >> + if (!chan) { >> + kfree(regd); >> return NULL; >> + } > > Bob sent a similar fix and he also did more: > > mwifiex: fix error handling in mwifiex_create_custom_regdomain > > https://patchwork.kernel.org/patch/9331337/ > Ah, sorry for the duplication noise. Colin
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c index 3344a26..15a91f3 100644 --- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c @@ -1049,8 +1049,10 @@ mwifiex_create_custom_regdomain(struct mwifiex_private *priv, enum nl80211_band band; chan = *buf++; - if (!chan) + if (!chan) { + kfree(regd); return NULL; + } chflags = *buf++; band = (chan <= 14) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ; freq = ieee80211_channel_to_frequency(chan, band);