forked from luck/tmp_suning_uos_patched
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: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
parent
20523132ec
commit
9227dd2a84
|
@ -1426,12 +1426,8 @@ static void check_unsafe_exec(struct linux_binprm *bprm)
|
|||
struct task_struct *p = current, *t;
|
||||
unsigned n_fs;
|
||||
|
||||
if (p->ptrace) {
|
||||
if (ptracer_capable(p, current_user_ns()))
|
||||
bprm->unsafe |= LSM_UNSAFE_PTRACE_CAP;
|
||||
else
|
||||
bprm->unsafe |= LSM_UNSAFE_PTRACE;
|
||||
}
|
||||
if (p->ptrace)
|
||||
bprm->unsafe |= LSM_UNSAFE_PTRACE;
|
||||
|
||||
/*
|
||||
* This isn't strictly necessary, but it makes it harder for LSMs to
|
||||
|
|
|
@ -140,8 +140,7 @@ struct request_sock;
|
|||
/* bprm->unsafe reasons */
|
||||
#define LSM_UNSAFE_SHARE 1
|
||||
#define LSM_UNSAFE_PTRACE 2
|
||||
#define LSM_UNSAFE_PTRACE_CAP 4
|
||||
#define LSM_UNSAFE_NO_NEW_PRIVS 8
|
||||
#define LSM_UNSAFE_NO_NEW_PRIVS 4
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
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)
|
|||
;
|
||||
}
|
||||
|
||||
if (bprm->unsafe & (LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) {
|
||||
if (bprm->unsafe & LSM_UNSAFE_PTRACE) {
|
||||
error = may_change_ptraced_domain(new_profile);
|
||||
if (error)
|
||||
goto audit;
|
||||
|
|
|
@ -548,7 +548,7 @@ int cap_bprm_set_creds(struct linux_binprm *bprm)
|
|||
|
||||
if ((is_setid ||
|
||||
!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))) {
|
||||
/* downgrade; they get no more than they had, and maybe less */
|
||||
if (!ns_capable(new->user_ns, CAP_SETUID) ||
|
||||
|
|
|
@ -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
|
||||
* changes its SID has the appropriate permit */
|
||||
if (bprm->unsafe &
|
||||
(LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) {
|
||||
if (bprm->unsafe & LSM_UNSAFE_PTRACE) {
|
||||
u32 ptsid = ptrace_parent_sid(current);
|
||||
if (ptsid != 0) {
|
||||
rc = avc_has_perm(ptsid, new_tsec->sid,
|
||||
|
|
|
@ -934,7 +934,7 @@ static int smack_bprm_set_creds(struct linux_binprm *bprm)
|
|||
isp->smk_task != sbsp->smk_root)
|
||||
return 0;
|
||||
|
||||
if (bprm->unsafe & (LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) {
|
||||
if (bprm->unsafe & LSM_UNSAFE_PTRACE) {
|
||||
struct task_struct *tracer;
|
||||
rc = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user