diff options
author | Kees Cook <keescook@chromium.org> | 2014-05-21 15:23:46 -0700 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2017-10-12 15:28:22 +0100 |
commit | 5f3333219189a3fe4bbbd2d67e636ed1bb74d243 (patch) | |
tree | e4078c65d51b66763aaaee24b3b9b14cb80771ca /fs | |
parent | 9e839401a65a30d15cbe9a1255640cd5ce2b548d (diff) |
sched: move no_new_privs into new atomic flags
commit 1d4457f99928a968767f6405b4a1f50845aa15fd upstream.
Since seccomp transitions between threads requires updates to the
no_new_privs flag to be atomic, the flag must be part of an atomic flag
set. This moves the nnp flag into a separate task field, and introduces
accessors.
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Andy Lutomirski <luto@amacapital.net>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/exec.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/exec.c b/fs/exec.c index b5af6a256cf7..fa3604731bae 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -1269,7 +1269,7 @@ static void check_unsafe_exec(struct linux_binprm *bprm) * This isn't strictly necessary, but it makes it harder for LSMs to * mess up. */ - if (current->no_new_privs) + if (task_no_new_privs(current)) bprm->unsafe |= LSM_UNSAFE_NO_NEW_PRIVS; t = p; @@ -1303,7 +1303,7 @@ static void bprm_fill_uid(struct linux_binprm *bprm) if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) return; - if (current->no_new_privs) + if (task_no_new_privs(current)) return; inode = file_inode(bprm->file); |