From: Nicholas Piggin <npiggin@gmail.com> To: linuxppc-dev@lists.ozlabs.org Cc: "Nicholas Piggin" <npiggin@gmail.com>, linux-kernel@vger.kernel.org, "Jessica Yu" <jeyu@kernel.org>, "Michal Suchánek" <msuchanek@suse.de>, "Michael Ellerman" <mpe@ellerman.id.au> Subject: [PATCH v4 1/2] module: add elf_check_module_arch for module specific elf arch checks Date: Fri, 11 Jun 2021 19:39:58 +1000 [thread overview] Message-ID: <20210611093959.821525-2-npiggin@gmail.com> (raw) In-Reply-To: <20210611093959.821525-1-npiggin@gmail.com> The elf_check_arch() function is used to test usermode binaries, but kernel modules may have more specific requirements. powerpc would like to test for ABI version compatibility. Add an arch-overridable function elf_check_module_arch() that defaults to elf_check_arch() and use it in elf_validity_check(). Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> [np: split patch, added changelog] Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- include/linux/moduleloader.h | 5 +++++ kernel/module.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h index 9e09d11ffe5b..fdc042a84562 100644 --- a/include/linux/moduleloader.h +++ b/include/linux/moduleloader.h @@ -13,6 +13,11 @@ * must be implemented by each architecture. */ +// Allow arch to optionally do additional checking of module ELF header +#ifndef elf_check_module_arch +#define elf_check_module_arch elf_check_arch +#endif + /* Adjust arch-specific sections. Return 0 on success. */ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, diff --git a/kernel/module.c b/kernel/module.c index 7e78dfabca97..7c3f9b7478dc 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -2946,7 +2946,7 @@ static int elf_validity_check(struct load_info *info) if (memcmp(info->hdr->e_ident, ELFMAG, SELFMAG) != 0 || info->hdr->e_type != ET_REL - || !elf_check_arch(info->hdr) + || !elf_check_module_arch(info->hdr) || info->hdr->e_shentsize != sizeof(Elf_Shdr)) return -ENOEXEC; -- 2.23.0
WARNING: multiple messages have this Message-ID (diff)
From: Nicholas Piggin <npiggin@gmail.com> To: linuxppc-dev@lists.ozlabs.org Cc: "Michal Suchánek" <msuchanek@suse.de>, linux-kernel@vger.kernel.org, "Nicholas Piggin" <npiggin@gmail.com>, "Jessica Yu" <jeyu@kernel.org> Subject: [PATCH v4 1/2] module: add elf_check_module_arch for module specific elf arch checks Date: Fri, 11 Jun 2021 19:39:58 +1000 [thread overview] Message-ID: <20210611093959.821525-2-npiggin@gmail.com> (raw) In-Reply-To: <20210611093959.821525-1-npiggin@gmail.com> The elf_check_arch() function is used to test usermode binaries, but kernel modules may have more specific requirements. powerpc would like to test for ABI version compatibility. Add an arch-overridable function elf_check_module_arch() that defaults to elf_check_arch() and use it in elf_validity_check(). Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> [np: split patch, added changelog] Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- include/linux/moduleloader.h | 5 +++++ kernel/module.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h index 9e09d11ffe5b..fdc042a84562 100644 --- a/include/linux/moduleloader.h +++ b/include/linux/moduleloader.h @@ -13,6 +13,11 @@ * must be implemented by each architecture. */ +// Allow arch to optionally do additional checking of module ELF header +#ifndef elf_check_module_arch +#define elf_check_module_arch elf_check_arch +#endif + /* Adjust arch-specific sections. Return 0 on success. */ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, diff --git a/kernel/module.c b/kernel/module.c index 7e78dfabca97..7c3f9b7478dc 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -2946,7 +2946,7 @@ static int elf_validity_check(struct load_info *info) if (memcmp(info->hdr->e_ident, ELFMAG, SELFMAG) != 0 || info->hdr->e_type != ET_REL - || !elf_check_arch(info->hdr) + || !elf_check_module_arch(info->hdr) || info->hdr->e_shentsize != sizeof(Elf_Shdr)) return -ENOEXEC; -- 2.23.0
next prev parent reply other threads:[~2021-06-11 9:41 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-11 9:39 [PATCH v4 0/2] powerpc/64: Option to use ELF V2 ABI for big-endian Nicholas Piggin 2021-06-11 9:39 ` Nicholas Piggin 2021-06-11 9:39 ` Nicholas Piggin [this message] 2021-06-11 9:39 ` [PATCH v4 1/2] module: add elf_check_module_arch for module specific elf arch checks Nicholas Piggin 2021-06-14 12:06 ` Jessica Yu 2021-06-14 12:06 ` Jessica Yu 2021-06-15 2:05 ` Nicholas Piggin 2021-06-15 2:05 ` Nicholas Piggin 2021-06-15 12:17 ` Jessica Yu 2021-06-15 12:17 ` Jessica Yu 2021-06-15 12:50 ` Segher Boessenkool 2021-06-15 12:50 ` Segher Boessenkool 2021-06-15 13:41 ` Jessica Yu 2021-06-15 13:41 ` Jessica Yu 2021-06-15 14:30 ` Segher Boessenkool 2021-06-15 14:30 ` Segher Boessenkool 2021-06-16 2:39 ` Michael Ellerman 2021-06-16 2:39 ` Michael Ellerman 2021-06-16 1:18 ` Nicholas Piggin 2021-06-16 1:18 ` Nicholas Piggin 2021-06-16 12:54 ` Jessica Yu 2021-06-16 12:54 ` Jessica Yu 2021-06-17 5:21 ` Nicholas Piggin 2021-06-17 5:21 ` Nicholas Piggin 2021-06-16 2:37 ` Michael Ellerman 2021-06-16 2:37 ` Michael Ellerman 2021-06-16 13:49 ` Jessica Yu 2021-06-16 13:49 ` Jessica Yu 2021-06-11 9:39 ` [PATCH v4 2/2] powerpc/64: Option to use ELF V2 ABI for big-endian kernels Nicholas Piggin 2021-06-11 9:39 ` Nicholas Piggin 2021-06-11 9:58 ` Michal Suchánek 2021-06-11 9:58 ` Michal Suchánek 2021-06-11 10:20 ` Michal Suchánek
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210611093959.821525-2-npiggin@gmail.com \ --to=npiggin@gmail.com \ --cc=jeyu@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ --cc=msuchanek@suse.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.