net, wireless, mwifiex: Fix mem leak in mwifiex_update_curr_bss_params()
If kmemdup() fails we leak the memory allocated to bss_desc. This patch fixes the leak. I also removed the pointless default assignment of 'NULL' to 'bss_desc' while I was there anyway. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
3b6ef6334f
commit
db652e4b36
|
@ -1469,7 +1469,7 @@ mwifiex_update_curr_bss_params(struct mwifiex_private *priv, u8 *bssid,
|
||||||
s32 rssi, const u8 *ie_buf, size_t ie_len,
|
s32 rssi, const u8 *ie_buf, size_t ie_len,
|
||||||
u16 beacon_period, u16 cap_info_bitmap, u8 band)
|
u16 beacon_period, u16 cap_info_bitmap, u8 band)
|
||||||
{
|
{
|
||||||
struct mwifiex_bssdescriptor *bss_desc = NULL;
|
struct mwifiex_bssdescriptor *bss_desc;
|
||||||
int ret;
|
int ret;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
u8 *beacon_ie;
|
u8 *beacon_ie;
|
||||||
|
@ -1484,6 +1484,7 @@ mwifiex_update_curr_bss_params(struct mwifiex_private *priv, u8 *bssid,
|
||||||
|
|
||||||
beacon_ie = kmemdup(ie_buf, ie_len, GFP_KERNEL);
|
beacon_ie = kmemdup(ie_buf, ie_len, GFP_KERNEL);
|
||||||
if (!beacon_ie) {
|
if (!beacon_ie) {
|
||||||
|
kfree(bss_desc);
|
||||||
dev_err(priv->adapter->dev, " failed to alloc beacon_ie\n");
|
dev_err(priv->adapter->dev, " failed to alloc beacon_ie\n");
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue