Linus Torvalds 594cc251fd make 'user_access_begin()' do 'access_ok()'
Originally, the rule used to be that you'd have to do access_ok()
separately, and then user_access_begin() before actually doing the
direct (optimized) user access.

But experience has shown that people then decide not to do access_ok()
at all, and instead rely on it being implied by other operations or
similar.  Which makes it very hard to verify that the access has
actually been range-checked.

If you use the unsafe direct user accesses, hardware features (either
SMAP - Supervisor Mode Access Protection - on x86, or PAN - Privileged
Access Never - on ARM) do force you to use user_access_begin().  But
nothing really forces the range check.

By putting the range check into user_access_begin(), we actually force
people to do the right thing (tm), and the range check vill be visible
near the actual accesses.  We have way too long a history of people
trying to avoid them.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-01-04 12:56:09 -08:00
..
2018-12-19 09:40:13 +01:00
2019-01-02 18:47:56 -08:00
2018-12-31 17:32:35 -08:00
2018-12-29 08:20:44 -07:00
2018-12-27 10:43:24 -08:00
2018-12-27 10:43:24 -08:00
2019-01-01 15:55:29 -08:00
2018-12-28 20:54:57 -08:00
2018-12-29 13:03:29 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 13:19:59 -08:00
2019-01-01 15:55:29 -08:00
2018-12-29 09:40:40 -08:00
2018-12-25 14:52:50 -08:00
2018-12-31 17:32:35 -08:00
2018-12-28 16:52:18 -08:00
2018-12-13 16:40:03 +00:00
2018-12-28 16:52:18 -08:00
2018-12-29 12:03:17 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 20:54:57 -08:00
2018-12-24 12:06:56 +01:00
2019-01-01 13:24:31 -08:00
2018-12-31 17:32:35 -08:00
2018-12-25 14:43:54 -08:00
2018-12-28 14:48:06 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 20:54:57 -08:00
2019-01-01 15:55:29 -08:00
2019-01-01 13:16:45 -08:00
2018-12-29 13:40:29 -08:00