From: Amanieu d'Antras <amanieu@gmail.com> To: unlisted-recipients:; (no To-header on input) Cc: Amanieu d'Antras <amanieu@gmail.com>, Ryan Houdek <Houdek.Ryan@fex-emu.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Steven Price <steven.price@arm.com>, Arnd Bergmann <arnd@kernel.org>, David Laight <David.Laight@aculab.com>, Mark Brown <broonie@kernel.org>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [RESEND PATCH v4 7/8] arm64: Forbid calling compat sigreturn from 64-bit tasks Date: Tue, 18 May 2021 10:06:57 +0100 [thread overview] Message-ID: <20210518090658.9519-8-amanieu@gmail.com> (raw) In-Reply-To: <20210518090658.9519-1-amanieu@gmail.com> It's impossible for this syscall to do anything sensible in this context. Signed-off-by: Amanieu d'Antras <amanieu@gmail.com> Co-developed-by: Ryan Houdek <Houdek.Ryan@fex-emu.org> Signed-off-by: Ryan Houdek <Houdek.Ryan@fex-emu.org> --- arch/arm64/kernel/signal32.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c index 2f507f565c48..e2bdd1eaefd8 100644 --- a/arch/arm64/kernel/signal32.c +++ b/arch/arm64/kernel/signal32.c @@ -237,6 +237,10 @@ COMPAT_SYSCALL_DEFINE0(sigreturn) /* Always make any pending restarted system calls return -EINTR */ current->restart_block.fn = do_no_restart_syscall; + /* Reject attempts to call this from a 64-bit process. */ + if (!is_compat_task()) + goto badframe; + /* * Since we stacked the signal on a 64-bit boundary, * then 'sp' should be word aligned here. If it's @@ -268,6 +272,10 @@ COMPAT_SYSCALL_DEFINE0(rt_sigreturn) /* Always make any pending restarted system calls return -EINTR */ current->restart_block.fn = do_no_restart_syscall; + /* Reject attempts to call this from a 64-bit process. */ + if (!is_compat_task()) + goto badframe; + /* * Since we stacked the signal on a 64-bit boundary, * then 'sp' should be word aligned here. If it's -- 2.31.1
WARNING: multiple messages have this Message-ID (diff)
From: Amanieu d'Antras <amanieu@gmail.com> Cc: Amanieu d'Antras <amanieu@gmail.com>, Ryan Houdek <Houdek.Ryan@fex-emu.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Steven Price <steven.price@arm.com>, Arnd Bergmann <arnd@kernel.org>, David Laight <David.Laight@aculab.com>, Mark Brown <broonie@kernel.org>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [RESEND PATCH v4 7/8] arm64: Forbid calling compat sigreturn from 64-bit tasks Date: Tue, 18 May 2021 10:06:57 +0100 [thread overview] Message-ID: <20210518090658.9519-8-amanieu@gmail.com> (raw) In-Reply-To: <20210518090658.9519-1-amanieu@gmail.com> It's impossible for this syscall to do anything sensible in this context. Signed-off-by: Amanieu d'Antras <amanieu@gmail.com> Co-developed-by: Ryan Houdek <Houdek.Ryan@fex-emu.org> Signed-off-by: Ryan Houdek <Houdek.Ryan@fex-emu.org> --- arch/arm64/kernel/signal32.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c index 2f507f565c48..e2bdd1eaefd8 100644 --- a/arch/arm64/kernel/signal32.c +++ b/arch/arm64/kernel/signal32.c @@ -237,6 +237,10 @@ COMPAT_SYSCALL_DEFINE0(sigreturn) /* Always make any pending restarted system calls return -EINTR */ current->restart_block.fn = do_no_restart_syscall; + /* Reject attempts to call this from a 64-bit process. */ + if (!is_compat_task()) + goto badframe; + /* * Since we stacked the signal on a 64-bit boundary, * then 'sp' should be word aligned here. If it's @@ -268,6 +272,10 @@ COMPAT_SYSCALL_DEFINE0(rt_sigreturn) /* Always make any pending restarted system calls return -EINTR */ current->restart_block.fn = do_no_restart_syscall; + /* Reject attempts to call this from a 64-bit process. */ + if (!is_compat_task()) + goto badframe; + /* * Since we stacked the signal on a 64-bit boundary, * then 'sp' should be word aligned here. If it's -- 2.31.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-05-18 9:08 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-18 9:06 [RESEND PATCH v4 0/8] arm64: Allow 64-bit tasks to invoke compat syscalls Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras 2021-05-18 9:06 ` [RESEND PATCH v4 1/8] mm: Add arch_get_mmap_base_topdown macro Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras 2021-05-18 9:06 ` [RESEND PATCH v4 2/8] hugetlbfs: Use arch_get_mmap_* macros Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras 2021-05-18 9:06 ` [RESEND PATCH v4 3/8] mm: Support mmap_compat_base with the generic layout Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras 2021-05-18 9:06 ` [RESEND PATCH v4 4/8] arm64: Separate in_compat_syscall from is_compat_task Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras 2021-05-18 9:06 ` [RESEND PATCH v4 5/8] arm64: mm: Use HAVE_ARCH_COMPAT_MMAP_BASES Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras 2021-05-18 9:06 ` [RESEND PATCH v4 6/8] arm64: Add a compat syscall flag to thread_info Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras [this message] 2021-05-18 9:06 ` [RESEND PATCH v4 7/8] arm64: Forbid calling compat sigreturn from 64-bit tasks Amanieu d'Antras 2021-05-18 9:06 ` [RESEND PATCH v4 8/8] arm64: Allow 64-bit tasks to invoke compat syscalls Amanieu d'Antras 2021-05-18 9:06 ` Amanieu d'Antras 2021-05-18 13:02 ` Arnd Bergmann 2021-05-18 13:02 ` Arnd Bergmann 2021-05-18 20:26 ` David Laight 2021-05-18 20:26 ` David Laight 2021-05-18 22:41 ` Ryan Houdek 2021-05-18 22:41 ` Ryan Houdek 2021-05-18 23:51 ` Amanieu d'Antras 2021-05-18 23:51 ` Amanieu d'Antras 2021-05-19 15:30 ` Steven Price 2021-05-19 15:30 ` Steven Price 2021-05-19 16:14 ` Amanieu d'Antras 2021-05-19 16:14 ` Amanieu d'Antras 2021-05-21 8:51 ` Steven Price 2021-05-21 8:51 ` Steven Price 2021-05-21 19:18 ` Amanieu d'Antras 2021-05-21 19:18 ` Amanieu d'Antras 2021-05-24 11:20 ` Steven Price 2021-05-24 11:20 ` Steven Price 2021-05-24 12:38 ` David Laight 2021-05-24 12:38 ` David Laight 2021-05-18 23:52 ` Ryan Houdek 2021-05-18 23:52 ` Ryan Houdek
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=20210518090658.9519-8-amanieu@gmail.com \ --to=amanieu@gmail.com \ --cc=David.Laight@aculab.com \ --cc=Houdek.Ryan@fex-emu.org \ --cc=arnd@kernel.org \ --cc=broonie@kernel.org \ --cc=catalin.marinas@arm.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=steven.price@arm.com \ --cc=will@kernel.org \ /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.