mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Re-extract the kernel patches as a series. Re-extract the u-boot patches as "git format-patch" command. Unified patch extraction makes it easier to work with patches.
48 lines
1.7 KiB
Diff
48 lines
1.7 KiB
Diff
From 042384a5333cba8021275fa27ebb0c4c0e21de19 Mon Sep 17 00:00:00 2001
|
|
From: Andy Chiu <andy.chiu@sifive.com>
|
|
Date: Tue, 22 Aug 2023 16:49:03 +0000
|
|
Subject: riscv: signal: fix sigaltstack frame size checking
|
|
|
|
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>
|
|
Link: https://lore.kernel.org/r/20230822164904.21660-1-andy.chiu@sifive.com
|
|
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.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 ffde81cfadb7..f5348292ae79 100644
|
|
--- a/arch/riscv/kernel/signal.c
|
|
+++ b/arch/riscv/kernel/signal.c
|
|
@@ -309,13 +309,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.35.3
|
|
|