From f638dd3918a4caa910ce62176d2d185203867876 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 7 Sep 2015 19:09:31 +0900 Subject: [PATCH] staging: wilc1000: fix potential memory leak 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 Signed-off-by: Chris Park Signed-off-by: Greg Kroah-Hartman --- 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 b5db23ffde6e..dd8007141ea6 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 663d0f818e4a..cf76a337a336 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); -- 2.30.2