diff options
author | Colin Ian King <colin.king@canonical.com> | 2016-03-21 22:42:11 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-03-22 22:27:36 -0400 |
commit | f54e994c2900ac5f0d4e12faf430d96e29f389c2 (patch) | |
tree | eac3f04d3c8228432474a256a2e6e7f20a871894 | |
parent | 2e11590171683c6b12193fe4b0ede1e6201b7f45 (diff) | |
download | linux-f54e994c2900ac5f0d4e12faf430d96e29f389c2.tar.bz2 |
staging: wilc1000: fix a couple of memory leaks
The ENOMEM error return paths are not free'ing allocated memory
resulting in a memory leak of allocated structures. Perform the
required kfree to fix the memory leaks.
Issue discovered with static analysis using CoverityScan
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/wilc1000/coreconfigurator.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 2c4ae1fc8435..4b51c0ac27ac 100644 --- a/drivers/staging/wilc1000/coreconfigurator.c +++ b/drivers/staging/wilc1000/coreconfigurator.c @@ -338,8 +338,10 @@ s32 wilc_parse_network_info(u8 *msg_buffer, if (ies_len > 0) { network_info->ies = kmemdup(ies, ies_len, GFP_KERNEL); - if (!network_info->ies) + if (!network_info->ies) { + kfree(network_info); return -ENOMEM; + } } network_info->ies_len = ies_len; } @@ -373,8 +375,10 @@ s32 wilc_parse_assoc_resp_info(u8 *buffer, u32 buffer_len, AID_LEN); connect_resp_info->ies = kmemdup(ies, ies_len, GFP_KERNEL); - if (!connect_resp_info->ies) + if (!connect_resp_info->ies) { + kfree(connect_resp_info); return -ENOMEM; + } connect_resp_info->ies_len = ies_len; } |