Lines Matching refs:bprm

286 static inline void bprm_clear_caps(struct linux_binprm *bprm)  in bprm_clear_caps()  argument
288 cap_clear(bprm->cred->cap_permitted); in bprm_clear_caps()
289 bprm->cap_effective = false; in bprm_clear_caps()
340 struct linux_binprm *bprm, in bprm_caps_from_vfs_caps() argument
344 struct cred *new = bprm->cred; in bprm_caps_from_vfs_caps()
440 static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_cap) in get_file_caps() argument
445 bprm_clear_caps(bprm); in get_file_caps()
450 if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) in get_file_caps()
453 rc = get_vfs_caps_from_disk(bprm->file->f_path.dentry, &vcaps); in get_file_caps()
457 __func__, rc, bprm->filename); in get_file_caps()
463 rc = bprm_caps_from_vfs_caps(&vcaps, bprm, effective, has_cap); in get_file_caps()
466 __func__, rc, bprm->filename); in get_file_caps()
470 bprm_clear_caps(bprm); in get_file_caps()
483 int cap_bprm_set_creds(struct linux_binprm *bprm) in cap_bprm_set_creds() argument
486 struct cred *new = bprm->cred; in cap_bprm_set_creds()
492 ret = get_file_caps(bprm, &effective, &has_cap); in cap_bprm_set_creds()
505 warn_setuid_and_fcaps_mixed(bprm->filename); in cap_bprm_set_creds()
527 bprm->per_clear |= PER_CLEAR_ON_SETID; in cap_bprm_set_creds()
538 bprm->unsafe & ~LSM_UNSAFE_PTRACE_CAP) { in cap_bprm_set_creds()
541 (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)) { in cap_bprm_set_creds()
556 bprm->cap_effective = effective; in cap_bprm_set_creds()
574 ret = audit_log_bprm_fcaps(bprm, new, old); in cap_bprm_set_creds()
594 int cap_bprm_secureexec(struct linux_binprm *bprm) in cap_bprm_secureexec() argument
600 if (bprm->cap_effective) in cap_bprm_secureexec()