Loading kernel/module.c +2 −4 Original line number Original line Diff line number Diff line Loading @@ -2039,21 +2039,19 @@ static int copy_module_elf(struct module *mod, struct load_info *info) /* Elf section header table */ /* Elf section header table */ size = sizeof(*info->sechdrs) * info->hdr->e_shnum; 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) { if (mod->klp_info->sechdrs == NULL) { ret = -ENOMEM; ret = -ENOMEM; goto free_info; goto free_info; } } memcpy(mod->klp_info->sechdrs, info->sechdrs, size); /* Elf section name string table */ /* Elf section name string table */ size = info->sechdrs[info->hdr->e_shstrndx].sh_size; 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) { if (mod->klp_info->secstrings == NULL) { ret = -ENOMEM; ret = -ENOMEM; goto free_sechdrs; goto free_sechdrs; } } memcpy(mod->klp_info->secstrings, info->secstrings, size); /* Elf symbol section index */ /* Elf symbol section index */ symndx = info->index.sym; symndx = info->index.sym; Loading Loading
kernel/module.c +2 −4 Original line number Original line Diff line number Diff line Loading @@ -2039,21 +2039,19 @@ static int copy_module_elf(struct module *mod, struct load_info *info) /* Elf section header table */ /* Elf section header table */ size = sizeof(*info->sechdrs) * info->hdr->e_shnum; 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) { if (mod->klp_info->sechdrs == NULL) { ret = -ENOMEM; ret = -ENOMEM; goto free_info; goto free_info; } } memcpy(mod->klp_info->sechdrs, info->sechdrs, size); /* Elf section name string table */ /* Elf section name string table */ size = info->sechdrs[info->hdr->e_shstrndx].sh_size; 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) { if (mod->klp_info->secstrings == NULL) { ret = -ENOMEM; ret = -ENOMEM; goto free_sechdrs; goto free_sechdrs; } } memcpy(mod->klp_info->secstrings, info->secstrings, size); /* Elf symbol section index */ /* Elf symbol section index */ symndx = info->index.sym; symndx = info->index.sym; Loading