kmemdup has implemented the function that kmalloc() + memcpy().
We prefer to kmemdup rather than code opened implementation.

This issue was detected with the help of coccinelle.

Signed-off-by: Wen Yang <wen.yan...@zte.com.cn>
CC: Mauro Carvalho Chehab <mche...@kernel.org>
CC: Tomoki Sekiyama <tomoki.sekiy...@gmail.com>
CC: linux-media@vger.kernel.org
CC: linux-ker...@vger.kernel.org
---
 drivers/media/usb/siano/smsusb.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/media/usb/siano/smsusb.c b/drivers/media/usb/siano/smsusb.c
index be3634407f1f..2ffded08407b 100644
--- a/drivers/media/usb/siano/smsusb.c
+++ b/drivers/media/usb/siano/smsusb.c
@@ -225,10 +225,9 @@ static int smsusb_sendrequest(void *context, void *buffer, 
size_t size)
                return -ENOENT;
        }
 
-       phdr = kmalloc(size, GFP_KERNEL);
+       phdr = kmemdup(buffer, size, GFP_KERNEL);
        if (!phdr)
                return -ENOMEM;
-       memcpy(phdr, buffer, size);
 
        pr_debug("sending %s(%d) size: %d\n",
                  smscore_translate_msg(phdr->msg_type), phdr->msg_type,
-- 
2.19.1

Reply via email to