staging: wilc1000: replace kmalloc/memcpy with kmemdup
authorChaehyun Lim <chaehyun.lim@gmail.com>
Tue, 27 Oct 2015 23:19:27 +0000 (08:19 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Oct 2015 23:50:45 +0000 (08:50 +0900)
This patch replaces kmalloc followed by memcpy with kmemdup.
It is also added error checking to return -ENOMEM when kmemdup is
failed.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/host_interface.c

index 466fd5307978f5491cde8cece2acd6bd5b4c4018..9a6fcc7e844cbf9e6ea1baa12e9de7d75041bf55 100644 (file)
@@ -3165,8 +3165,10 @@ int host_int_add_wep_key_bss_ap(struct host_if_drv *hif_drv,
        msg.body.key_info.type = WEP;
        msg.body.key_info.action = ADDKEY_AP;
        msg.drv = hif_drv;
-       msg.body.key_info.attr.wep.key = kmalloc(len, GFP_KERNEL);
-       memcpy(msg.body.key_info.attr.wep.key, key, len);
+       msg.body.key_info.attr.wep.key = kmemdup(key, len, GFP_KERNEL);
+       if (!msg.body.key_info.attr.wep.key)
+               return -ENOMEM;
+
        msg.body.key_info.attr.wep.key_len = len;
        msg.body.key_info.attr.wep.index = index;
        msg.body.key_info.attr.wep.mode = mode;