未验证 提交 13e47beb 编写于 作者: T Tong Tiangen 提交者: Palmer Dabbelt

riscv: Implement thread_struct whitelist for hardened usercopy

This whitelists the FPU register state portion of the thread_struct for
copying to userspace, instead of the default entire struct.
Signed-off-by: NTong Tiangen <tongtiangen@huawei.com>
Signed-off-by: NPalmer Dabbelt <palmerdabbelt@google.com>
上级 67979e92
......@@ -72,6 +72,7 @@ config RISCV
select HAVE_ARCH_SECCOMP_FILTER
select HAVE_ARCH_TRACEHOOK
select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU
select HAVE_ARCH_THREAD_STRUCT_WHITELIST
select HAVE_ARCH_VMAP_STACK if MMU && 64BIT
select HAVE_ASM_MODVERSIONS
select HAVE_CONTEXT_TRACKING
......
......@@ -37,6 +37,14 @@ struct thread_struct {
unsigned long bad_cause;
};
/* Whitelist the fstate from the task_struct for hardened usercopy */
static inline void arch_thread_struct_whitelist(unsigned long *offset,
unsigned long *size)
{
*offset = offsetof(struct thread_struct, fstate);
*size = sizeof_field(struct thread_struct, fstate);
}
#define INIT_THREAD { \
.sp = sizeof(init_stack) + (long)&init_stack, \
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册