Skip to content
Snippets Groups Projects
Commit 573f45a9 authored by David Laight's avatar David Laight Committed by Linus Torvalds
Browse files

x86: fix off-by-one in access_ok()


When the size isn't a small constant, __access_ok() will call
valid_user_address() with the address after the last byte of the user
buffer.

It is valid for a buffer to end with the last valid user address so
valid_user_address() must allow accesses to the base of the guard page.

[ This introduces an off-by-one in the other direction for the plain
  non-sized accesses, but since we have that guard region that is a
  whole page, those checks "allowing" accesses to that guard region
  don't really matter. The access will fault anyway, whether to the
  guard page or if the address has been masked to all ones - Linus ]

Fixes: 86e6b154 ("x86: fix user address masking non-canonical speculation issue")
Signed-off-by: default avatarDavid Laight <david.laight@aculab.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 43a43faf
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment