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>
This commit is contained in:
Ajay Singh 2018-05-11 13:43:15 +05:30 committed by Greg Kroah-Hartman
parent 30300a1cbd
commit 7ca6ba24c3
1 changed files with 6 additions and 3 deletions

View File

@ -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;