diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-10-19 19:23:16 -1000 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-10-19 19:23:16 -1000 |
| commit | b040da2a0046ae64eeeed256b4465f231d5ee6de (patch) | |
| tree | 6c4d131a44e6633f66a4ecdfa3f6daedc6617c21 /kernel/stacktrace.c | |
| parent | 5c8590157b85d4030c40de6c00f9739a676ba8b0 (diff) | |
signal: use scoped user access in __save_altstack()
__save_altstack() and __compat_save_altstack() write three fields with
__put_user(), relying on the caller having done access_ok() on the whole
signal frame. Each of those writes enables and disables user access on
its own, so that check saves nothing.
x86 and powerpc already avoid these functions by using
unsafe_save_altstack() inside their own user access regions. Use the
same helpers here, inside a scoped_user_write_access(), so that every
other architecture gets a single range check and a single user access
region too. None of those callers is itself inside a user access
region, so nothing nests.
This is part of getting rid of __get_user() and __put_user() entirely.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/stacktrace.c')
0 files changed, 0 insertions, 0 deletions
