kernel/module: Use kmemdup to replace kmalloc+memcpy
authorzhong jiang <zhongjiang@huawei.com>
Tue, 31 Jul 2018 16:56:17 +0000 (00:56 +0800)
committerJessica Yu <jeyu@kernel.org>
Thu, 2 Aug 2018 16:03:17 +0000 (18:03 +0200)
we prefer to the kmemdup rather than kmalloc+memcpy. so just
replace them.

Signed-off-by: zhong jiang <zhongjiang@huawei.com>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
kernel/module.c

index 8a45986fd7289ce4943559f9b37574e0ed753f5d..54fbac81fd56f5cb24aab24f3017e0ca6e4b1ff9 100644 (file)
@@ -2039,21 +2039,19 @@ static int copy_module_elf(struct module *mod, struct load_info *info)
 
        /* Elf section header table */
        size = sizeof(*info->sechdrs) * info->hdr->e_shnum;
-       mod->klp_info->sechdrs = kmalloc(size, GFP_KERNEL);
+       mod->klp_info->sechdrs = kmemdup(info->sechdrs, size, GFP_KERNEL);
        if (mod->klp_info->sechdrs == NULL) {
                ret = -ENOMEM;
                goto free_info;
        }
-       memcpy(mod->klp_info->sechdrs, info->sechdrs, size);
 
        /* Elf section name string table */
        size = info->sechdrs[info->hdr->e_shstrndx].sh_size;
-       mod->klp_info->secstrings = kmalloc(size, GFP_KERNEL);
+       mod->klp_info->secstrings = kmemdup(info->secstrings, size, GFP_KERNEL);
        if (mod->klp_info->secstrings == NULL) {
                ret = -ENOMEM;
                goto free_sechdrs;
        }
-       memcpy(mod->klp_info->secstrings, info->secstrings, size);
 
        /* Elf symbol section index */
        symndx = info->index.sym;