Lines Matching refs:bprm

529 					  struct linux_binprm *bprm,  in bprm_caps_from_vfs_caps()  argument
533 struct cred *new = bprm->cred; in bprm_caps_from_vfs_caps()
650 static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_fcap) in get_file_caps() argument
655 cap_clear(bprm->cred->cap_permitted); in get_file_caps()
660 if (!mnt_may_suid(bprm->file->f_path.mnt)) in get_file_caps()
668 if (!current_in_userns(bprm->file->f_path.mnt->mnt_sb->s_user_ns)) in get_file_caps()
671 rc = get_vfs_caps_from_disk(bprm->file->f_path.dentry, &vcaps); in get_file_caps()
675 bprm->filename); in get_file_caps()
681 rc = bprm_caps_from_vfs_caps(&vcaps, bprm, effective, has_fcap); in get_file_caps()
685 cap_clear(bprm->cred->cap_permitted); in get_file_caps()
713 static void handle_privileged_root(struct linux_binprm *bprm, bool has_fcap, in handle_privileged_root() argument
717 struct cred *new = bprm->cred; in handle_privileged_root()
727 warn_setuid_and_fcaps_mixed(bprm->filename); in handle_privileged_root()
807 int cap_bprm_set_creds(struct linux_binprm *bprm) in cap_bprm_set_creds() argument
810 struct cred *new = bprm->cred; in cap_bprm_set_creds()
818 ret = get_file_caps(bprm, &effective, &has_fcap); in cap_bprm_set_creds()
824 handle_privileged_root(bprm, has_fcap, &effective, root_uid); in cap_bprm_set_creds()
828 bprm->per_clear |= PER_CLEAR_ON_SETID; in cap_bprm_set_creds()
838 ((bprm->unsafe & ~LSM_UNSAFE_PTRACE) || in cap_bprm_set_creds()
842 (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)) { in cap_bprm_set_creds()
876 ret = audit_log_bprm_fcaps(bprm, new, old); in cap_bprm_set_creds()
887 bprm->cap_elevated = 0; in cap_bprm_set_creds()
892 bprm->cap_elevated = 1; in cap_bprm_set_creds()