wcn36xx: Use kmemdup instead of kmalloc + memcpy
authorBenoit Taine <benoit.taine@lip6.fr>
Mon, 26 May 2014 15:21:14 +0000 (17:21 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 29 May 2014 17:08:11 +0000 (13:08 -0400)
This issue was reported by coccicheck using the semantic patch
at scripts/coccinelle/api/memdup.cocci

Signed-off-by: Benoit Taine <benoit.taine@lip6.fr>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/wcn36xx/smd.c

index 7bf0ef8a1f56f176e14cf0a7905410a0593362a3..63986931829eb6cd76ecf04e467cab30523a460f 100644 (file)
@@ -2068,7 +2068,7 @@ static void wcn36xx_smd_rsp_process(struct wcn36xx *wcn, void *buf, size_t len)
                if (!msg_ind)
                        goto nomem;
                msg_ind->msg_len = len;
-               msg_ind->msg = kmalloc(len, GFP_KERNEL);
+               msg_ind->msg = kmemdup(buf, len, GFP_KERNEL);
                if (!msg_ind->msg) {
                        kfree(msg_ind);
 nomem:
@@ -2080,7 +2080,6 @@ nomem:
                                    msg_header->msg_type);
                        break;
                }
-               memcpy(msg_ind->msg, buf, len);
                mutex_lock(&wcn->hal_ind_mutex);
                list_add_tail(&msg_ind->list, &wcn->hal_ind_queue);
                queue_work(wcn->hal_ind_wq, &wcn->hal_ind_work);