All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] riscv: signal: fix sigaltstack frame size checking
@ 2023-08-22 16:49 Andy Chiu
       [not found] ` <CAHdA9BxbLyvxObiQqW=M-Rh3PaGqWsdVHUuDc_x5ZZqBOUzhcQ@mail.gmail.com>
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Andy Chiu @ 2023-08-22 16:49 UTC (permalink / raw)
  To: linux-riscv, palmer
  Cc: greentime.hu, guoren, bjorn, prashanthsw, Andy Chiu,
	Paul Walmsley, Albert Ou, Heiko Stuebner, Conor Dooley,
	Vincent Chen, Mathis Salmen, Guo Ren, Andrew Bresticker,
	Vineet Gupta

The alternative stack checking in get_sigframe introduced by the Vector
support is not needed and has a problem. It is not needed as we have
already validate it at the beginning of the function if we are already
on an altstack. If not, the size of an altstack is always validated at
its allocation stage with sigaltstack_size_valid().

Besides, we must only regard the size of an altstack if the handler of a
signal is registered with SA_ONSTACK. So, blindly checking overflow of
an altstack if sas_ss_size not equals to zero will check against wrong
signal handlers if only a subset of signals are registered with
SA_ONSTACK.

Fixes: 8ee0b41898fa ("riscv: signal: Add sigcontext save/restore for vector")
Reported-by: Prashanth Swaminathan <prashanthsw@google.com>
Signed-off-by: Andy Chiu <andy.chiu@sifive.com>
---
 arch/riscv/kernel/signal.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/arch/riscv/kernel/signal.c b/arch/riscv/kernel/signal.c
index 180d951d3624..21a4d0e111bc 100644
--- a/arch/riscv/kernel/signal.c
+++ b/arch/riscv/kernel/signal.c
@@ -311,13 +311,6 @@ static inline void __user *get_sigframe(struct ksignal *ksig,
 	/* Align the stack frame. */
 	sp &= ~0xfUL;
 
-	/*
-	 * Fail if the size of the altstack is not large enough for the
-	 * sigframe construction.
-	 */
-	if (current->sas_ss_size && sp < current->sas_ss_sp)
-		return (void __user __force *)-1UL;
-
 	return (void __user *)sp;
 }
 
-- 
2.17.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-10-15 17:47 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-22 16:49 [PATCH] riscv: signal: fix sigaltstack frame size checking Andy Chiu
     [not found] ` <CAHdA9BxbLyvxObiQqW=M-Rh3PaGqWsdVHUuDc_x5ZZqBOUzhcQ@mail.gmail.com>
2023-08-23 16:35   ` Prashanth Swaminathan
2023-08-30 20:30 ` patchwork-bot+linux-riscv
2023-08-31 21:58 ` Palmer Dabbelt
2023-09-25 10:07   ` Linux regression tracking (Thorsten Leemhuis)
2023-09-25 10:07     ` Linux regression tracking (Thorsten Leemhuis)
2023-09-27 14:46     ` Palmer Dabbelt
2023-09-27 14:46       ` Palmer Dabbelt
2023-10-15 10:52 ` Aurelien Jarno
2023-10-15 17:47   ` Greg KH

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.