Lines Matching refs:bprm
536 struct linux_binprm *bprm, in bprm_caps_from_vfs_caps() argument
540 struct cred *new = bprm->cred; in bprm_caps_from_vfs_caps()
655 static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_fcap) in get_file_caps() argument
660 cap_clear(bprm->cred->cap_permitted); in get_file_caps()
665 if (!mnt_may_suid(bprm->file->f_path.mnt)) in get_file_caps()
673 if (!current_in_userns(bprm->file->f_path.mnt->mnt_sb->s_user_ns)) in get_file_caps()
676 rc = get_vfs_caps_from_disk(bprm->file->f_path.dentry, &vcaps); in get_file_caps()
680 bprm->filename); in get_file_caps()
686 rc = bprm_caps_from_vfs_caps(&vcaps, bprm, effective, has_fcap); in get_file_caps()
689 __func__, rc, bprm->filename); in get_file_caps()
693 cap_clear(bprm->cred->cap_permitted); in get_file_caps()
721 static void handle_privileged_root(struct linux_binprm *bprm, bool has_fcap, in handle_privileged_root() argument
725 struct cred *new = bprm->cred; in handle_privileged_root()
735 warn_setuid_and_fcaps_mixed(bprm->filename); in handle_privileged_root()
815 int cap_bprm_set_creds(struct linux_binprm *bprm) in cap_bprm_set_creds() argument
818 struct cred *new = bprm->cred; in cap_bprm_set_creds()
826 ret = get_file_caps(bprm, &effective, &has_fcap); in cap_bprm_set_creds()
832 handle_privileged_root(bprm, has_fcap, &effective, root_uid); in cap_bprm_set_creds()
836 bprm->per_clear |= PER_CLEAR_ON_SETID; in cap_bprm_set_creds()
846 ((bprm->unsafe & ~LSM_UNSAFE_PTRACE) || in cap_bprm_set_creds()
850 (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)) { in cap_bprm_set_creds()
884 ret = audit_log_bprm_fcaps(bprm, new, old); in cap_bprm_set_creds()
895 bprm->cap_elevated = 0; in cap_bprm_set_creds()
900 bprm->cap_elevated = 1; in cap_bprm_set_creds()