diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-10-19 19:23:39 -1000 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-10-19 19:23:39 -1000 |
| commit | 9da9f342a897a2d43ad947d4073b1912800ab436 (patch) | |
| tree | f3d015e3710b44060a7567ed96dc5ac94813da4e /scripts/Makefile.thinlto | |
| parent | 2806617c9c02fe16b7b3a93a98e7907d53c1cf31 (diff) | |
| download | linux-9da9f342a897a2d43ad947d4073b1912800ab436.tar.gz linux-9da9f342a897a2d43ad947d4073b1912800ab436.zip | |
x86/signal: Use scoped user access in the sigreturn system calls
All four sigreturn variants (32-bit sigreturn and rt_sigreturn, native
64-bit and x32 rt_sigreturn) do an access_ok() on the whole signal frame
only to read the signal mask with __get_user(). The 64-bit and x32
variants also read uc_flags that way. Everything else in the frame is
read by helpers that do their own checking.
Read those fields inside a scoped_user_read_access() instead, which does
the range check once and puts a single stac/clac pair around plain
loads. The scoped accessor shadows 'frame' with a checked copy only
inside its block, so the badframe path still reports the original
pointer.
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 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
