aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
diff options
context:
space:
mode:
authorAjay Singh <ajay.kathat@microchip.com>2018-05-11 13:43:15 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-05-14 14:04:48 +0200
commit7ca6ba24c3e3ca852d46acf885c4982fab3bb895 (patch)
treeb98cfe6f2ccde0df0682c97220e8fdeecbf2598b /drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
parentstaging: wilc1000: fix line over 80 chars in add_network_to_shadow() (diff)
downloadlinux-dev-7ca6ba24c3e3ca852d46acf885c4982fab3bb895.tar.xz
linux-dev-7ca6ba24c3e3ca852d46acf885c4982fab3bb895.zip
staging: wilc1000: use kmemdup instead of kmalloc in add_network_to_shadow()
Use kmemdup instead of kmalloc & memcpy in add_network_to_shadow(). Also added code to set 'ies_len' to zero in case of memory allocation failure. Signed-off-by: Ajay Singh <ajay.kathat@microchip.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/wilc1000/wilc_wfi_cfgoperations.c')
-rw-r--r--drivers/staging/wilc1000/wilc_wfi_cfgoperations.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
index c730323cab87..32bdefb91001 100644
--- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
+++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
@@ -327,12 +327,15 @@ static void add_network_to_shadow(struct network_info *nw_info,
shadow_nw_info->beacon_period = nw_info->beacon_period;
shadow_nw_info->dtim_period = nw_info->dtim_period;
shadow_nw_info->ch = nw_info->ch;
- shadow_nw_info->ies_len = nw_info->ies_len;
shadow_nw_info->tsf_hi = nw_info->tsf_hi;
if (ap_found != -1)
kfree(shadow_nw_info->ies);
- shadow_nw_info->ies = kmalloc(nw_info->ies_len, GFP_KERNEL);
- memcpy(shadow_nw_info->ies, nw_info->ies, nw_info->ies_len);
+ shadow_nw_info->ies = kmemdup(nw_info->ies, nw_info->ies_len,
+ GFP_KERNEL);
+ if (shadow_nw_info->ies)
+ shadow_nw_info->ies_len = nw_info->ies_len;
+ else
+ shadow_nw_info->ies_len = 0;
shadow_nw_info->time_scan = jiffies;
shadow_nw_info->time_scan_cached = jiffies;
shadow_nw_info->found = 1;