Commit 9227dd2a authored by Eric W. Biederman's avatar Eric W. Biederman

exec: Remove LSM_UNSAFE_PTRACE_CAP

With previous changes every location that tests for
LSM_UNSAFE_PTRACE_CAP also tests for LSM_UNSAFE_PTRACE making the
LSM_UNSAFE_PTRACE_CAP redundant, so remove it.
Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent 20523132
...@@ -1426,12 +1426,8 @@ static void check_unsafe_exec(struct linux_binprm *bprm) ...@@ -1426,12 +1426,8 @@ static void check_unsafe_exec(struct linux_binprm *bprm)
struct task_struct *p = current, *t; struct task_struct *p = current, *t;
unsigned n_fs; unsigned n_fs;
if (p->ptrace) { if (p->ptrace)
if (ptracer_capable(p, current_user_ns())) bprm->unsafe |= LSM_UNSAFE_PTRACE;
bprm->unsafe |= LSM_UNSAFE_PTRACE_CAP;
else
bprm->unsafe |= LSM_UNSAFE_PTRACE;
}
/* /*
* This isn't strictly necessary, but it makes it harder for LSMs to * This isn't strictly necessary, but it makes it harder for LSMs to
......
...@@ -140,8 +140,7 @@ struct request_sock; ...@@ -140,8 +140,7 @@ struct request_sock;
/* bprm->unsafe reasons */ /* bprm->unsafe reasons */
#define LSM_UNSAFE_SHARE 1 #define LSM_UNSAFE_SHARE 1
#define LSM_UNSAFE_PTRACE 2 #define LSM_UNSAFE_PTRACE 2
#define LSM_UNSAFE_PTRACE_CAP 4 #define LSM_UNSAFE_NO_NEW_PRIVS 4
#define LSM_UNSAFE_NO_NEW_PRIVS 8
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
extern int mmap_min_addr_handler(struct ctl_table *table, int write, extern int mmap_min_addr_handler(struct ctl_table *table, int write,
......
...@@ -469,7 +469,7 @@ int apparmor_bprm_set_creds(struct linux_binprm *bprm) ...@@ -469,7 +469,7 @@ int apparmor_bprm_set_creds(struct linux_binprm *bprm)
; ;
} }
if (bprm->unsafe & (LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) { if (bprm->unsafe & LSM_UNSAFE_PTRACE) {
error = may_change_ptraced_domain(new_profile); error = may_change_ptraced_domain(new_profile);
if (error) if (error)
goto audit; goto audit;
......
...@@ -548,7 +548,7 @@ int cap_bprm_set_creds(struct linux_binprm *bprm) ...@@ -548,7 +548,7 @@ int cap_bprm_set_creds(struct linux_binprm *bprm)
if ((is_setid || if ((is_setid ||
!cap_issubset(new->cap_permitted, old->cap_permitted)) && !cap_issubset(new->cap_permitted, old->cap_permitted)) &&
((bprm->unsafe & ~(LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) || ((bprm->unsafe & ~LSM_UNSAFE_PTRACE) ||
!ptracer_capable(current, new->user_ns))) { !ptracer_capable(current, new->user_ns))) {
/* downgrade; they get no more than they had, and maybe less */ /* downgrade; they get no more than they had, and maybe less */
if (!ns_capable(new->user_ns, CAP_SETUID) || if (!ns_capable(new->user_ns, CAP_SETUID) ||
......
...@@ -2404,8 +2404,7 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm) ...@@ -2404,8 +2404,7 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm)
/* Make sure that anyone attempting to ptrace over a task that /* Make sure that anyone attempting to ptrace over a task that
* changes its SID has the appropriate permit */ * changes its SID has the appropriate permit */
if (bprm->unsafe & if (bprm->unsafe & LSM_UNSAFE_PTRACE) {
(LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) {
u32 ptsid = ptrace_parent_sid(current); u32 ptsid = ptrace_parent_sid(current);
if (ptsid != 0) { if (ptsid != 0) {
rc = avc_has_perm(ptsid, new_tsec->sid, rc = avc_has_perm(ptsid, new_tsec->sid,
......
...@@ -934,7 +934,7 @@ static int smack_bprm_set_creds(struct linux_binprm *bprm) ...@@ -934,7 +934,7 @@ static int smack_bprm_set_creds(struct linux_binprm *bprm)
isp->smk_task != sbsp->smk_root) isp->smk_task != sbsp->smk_root)
return 0; return 0;
if (bprm->unsafe & (LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) { if (bprm->unsafe & LSM_UNSAFE_PTRACE) {
struct task_struct *tracer; struct task_struct *tracer;
rc = 0; rc = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment