aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sys.c
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2017-11-13 10:24:50 +0100
committerJuergen Gross <jgross@suse.com>2017-11-13 10:24:50 +0100
commit3a485c2be49dde899e506684bb5f06d5b3f73e82 (patch)
treee013f4d121199d60b70043f525aef4a7e641b5f6 /kernel/sys.c
parentLinux 4.13 (diff)
parentLinux 4.14 (diff)
Merge tag 'v4.14' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
Linux 4.14
Diffstat (limited to 'kernel/sys.c')
-rw-r--r--kernel/sys.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/kernel/sys.c b/kernel/sys.c
index 2855ee73acd0..524a4cb9bbe2 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
/*
* linux/kernel/sys.c
*
@@ -1896,15 +1897,11 @@ static int validate_prctl_map(struct prctl_mm_map *prctl_map)
/*
* Finally, make sure the caller has the rights to
- * change /proc/pid/exe link: only local root should
+ * change /proc/pid/exe link: only local sys admin should
* be allowed to.
*/
if (prctl_map->exe_fd != (u32)-1) {
- struct user_namespace *ns = current_user_ns();
- const struct cred *cred = current_cred();
-
- if (!uid_eq(cred->uid, make_kuid(ns, 0)) ||
- !gid_eq(cred->gid, make_kgid(ns, 0)))
+ if (!ns_capable(current_user_ns(), CAP_SYS_ADMIN))
goto out;
}