Instead of kmalloc and memcpy use kmemdup in handle_connect_timeout().
Also return -ENOMEM incase of failure to allocate the memory.

Signed-off-by: Ajay Singh <ajay.kat...@microchip.com>
---
 drivers/staging/wilc1000/host_interface.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/wilc1000/host_interface.c 
b/drivers/staging/wilc1000/host_interface.c
index 039b49b..89f4afd 100644
--- a/drivers/staging/wilc1000/host_interface.c
+++ b/drivers/staging/wilc1000/host_interface.c
@@ -1166,10 +1166,11 @@ static s32 handle_connect_timeout(struct wilc_vif *vif)
 
                if (hif_drv->usr_conn_req.ies) {
                        info.req_ies_len = hif_drv->usr_conn_req.ies_len;
-                       info.req_ies = kmalloc(hif_drv->usr_conn_req.ies_len, 
GFP_KERNEL);
-                       memcpy(info.req_ies,
-                              hif_drv->usr_conn_req.ies,
-                              hif_drv->usr_conn_req.ies_len);
+                       info.req_ies = kmemdup(hif_drv->usr_conn_req.ies,
+                                              hif_drv->usr_conn_req.ies_len,
+                                              GFP_KERNEL);
+                       if (!info.req_ies)
+                               return -ENOMEM;
                }
 
                hif_drv->usr_conn_req.conn_result(CONN_DISCONN_EVENT_CONN_RESP,
-- 
2.7.4

Reply via email to