summaryrefslogtreecommitdiffstats
path: root/kernel/module.c
diff options
context:
space:
mode:
authorzhong jiang <zhongjiang@huawei.com>2018-07-31 18:56:17 +0200
committerJessica Yu <jeyu@kernel.org>2018-08-02 18:03:17 +0200
commit9be936f4b3a2ec101f54cff9cf1a6abf67263c50 (patch)
tree3ee7695f2ee3179bd69b52d1d1b9fbba599cfcf3 /kernel/module.c
parentARM: module: fix modsign build error (diff)
downloadlinux-9be936f4b3a2ec101f54cff9cf1a6abf67263c50.tar.xz
linux-9be936f4b3a2ec101f54cff9cf1a6abf67263c50.zip
kernel/module: Use kmemdup to replace kmalloc+memcpy
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>
Diffstat (limited to 'kernel/module.c')
-rw-r--r--kernel/module.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/kernel/module.c b/kernel/module.c
index 8a45986fd728..54fbac81fd56 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -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;