This patch adds kfree(mgmt_tx) when memory allocation of mgmt_tx->buff fails in the second calls of kmalloc() to avoid the memory leak from mgmt_tx first allocated before the second calls of kmalloc(). Signed-off-by: Tony Cho <tony.cho@xxxxxxxxx> Signed-off-by: Chris Park <chirs.park@xxxxxxxxx> --- drivers/staging/wilc1000/linux_mon.c | 1 + drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index b5db23f..dd80071 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -242,6 +242,7 @@ static int mon_mgmt_tx(struct net_device *dev, const u8 *buf, size_t len) mgmt_tx->buff = kmalloc(len, GFP_ATOMIC); if (mgmt_tx->buff == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx buff\n"); + kfree(mgmt_tx); return WILC_FAIL; } diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 663d0f8..cf76a33 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -2533,6 +2533,7 @@ int WILC_WFI_mgmt_tx(struct wiphy *wiphy, mgmt_tx->buff = WILC_MALLOC(buf_len); if (mgmt_tx->buff == NULL) { PRINT_ER("Failed to allocate memory for mgmt_tx buff\n"); + kfree(mgmt_tx); return WILC_FAIL; } memcpy(mgmt_tx->buff, buf, len); -- 1.9.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel