diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-04 20:18:17 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-04 20:18:17 +0200 |
commit | 6c51e67b64d169419fb13318035bb442f9176612 (patch) | |
tree | ae6c64a9d703983f9df5f72e74419de2e388e32b /arch/arm/include/asm/uaccess.h | |
parent | Merge branch 'x86-spinlocks-for-linus' of git://git.kernel.org/pub/scm/linux/... (diff) | |
parent | arm64/syscalls: Check address limit on user-mode return (diff) | |
download | linux-6c51e67b64d169419fb13318035bb442f9176612.tar.xz linux-6c51e67b64d169419fb13318035bb442f9176612.zip |
Merge branch 'x86-syscall-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull syscall updates from Ingo Molnar:
"Improve the security of set_fs(): we now check the address limit on a
number of key platforms (x86, arm, arm64) before returning to
user-space - without adding overhead to the typical system call fast
path"
* 'x86-syscall-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
arm64/syscalls: Check address limit on user-mode return
arm/syscalls: Check address limit on user-mode return
x86/syscalls: Check address limit on user-mode return
Diffstat (limited to 'arch/arm/include/asm/uaccess.h')
-rw-r--r-- | arch/arm/include/asm/uaccess.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h index 0bf2347495f1..87936dd5d151 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h @@ -70,6 +70,8 @@ static inline void set_fs(mm_segment_t fs) { current_thread_info()->addr_limit = fs; modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_CLIENT : DOMAIN_MANAGER); + /* On user-mode return, check fs is correct */ + set_thread_flag(TIF_FSCHECK); } #define segment_eq(a, b) ((a) == (b)) |