[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210518090658.9519-8-amanieu@gmail.com>
Date: Tue, 18 May 2021 10:06:57 +0100
From: Amanieu d'Antras <amanieu@...il.com>
To: unlisted-recipients:; (no To-header on input)
Cc: Amanieu d'Antras <amanieu@...il.com>,
Ryan Houdek <Houdek.Ryan@...-emu.org>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Steven Price <steven.price@....com>,
Arnd Bergmann <arnd@...nel.org>,
David Laight <David.Laight@...lab.com>,
Mark Brown <broonie@...nel.org>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: [RESEND PATCH v4 7/8] arm64: Forbid calling compat sigreturn from 64-bit tasks
It's impossible for this syscall to do anything sensible in this
context.
Signed-off-by: Amanieu d'Antras <amanieu@...il.com>
Co-developed-by: Ryan Houdek <Houdek.Ryan@...-emu.org>
Signed-off-by: Ryan Houdek <Houdek.Ryan@...-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
Powered by blists - more mailing lists