ptrace: Add compat PTRACE_{G,S}ETSIGMASK handlers
maillist inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8JVJ3 CVE: NA Reference: https://github.com/norov/linux/commits/ilp32-5.2 -------------------------------- compat_ptrace_request() lacks handlers for PTRACE_{G,S}ETSIGMASK, instead using those in ptrace_request(). The compat variant should read a compat_sigset_t from userspace instead of ptrace_request()s sigset_t. While compat_sigset_t is the same size as sigset_t, it is defined as 2xu32, instead of a single u64. On a big-endian CPU this means that compat_sigset_t is passed to user-space using middle-endianness, where the least-significant u32 is written most significant byte first. If ptrace_request()s code is used userspace will read the most significant u32 where it expected the least significant. Instead of duplicating ptrace_request()s code as a special case in the arch code, handle it here. Fixes: 29000cae ("ptrace: add ability to get/set signal-blocked mask") CC: Andrey Vagin <avagin@openvz.org> Signed-off-by:James Morse <james.morse@arm.com> Yury: Replace sigset_{to,from}_compat() with new {get,put}_compat_sigset() Signed-off-by:
Yury Norov <ynorov@caviumnetworks.com> Signed-off-by:
Yury Norov <ynorov@marvell.com> Signed-off-by:
Xiongfeng Wang <wangxiongfeng2@huawei.com> Acked-by:
Xie XiuQi <xiexiuqi@huawei.com> Signed-off-by:
Chen Jun <chenjun102@huawei.com> Patchwork Links: http://patchwork.huawei.com/project/hulk5.10/list/?series=12937 Signed-off-by:
Chen Jiahao <chenjiahao16@huawei.com> Signed-off-by:
Jinjie Ruan <ruanjinjie@huawei.com>
Loading
Please sign in to comment