Lines Matching refs:bprm
617 struct linux_binprm *bprm, in bprm_caps_from_vfs_caps() argument
621 struct cred *new = bprm->cred; in bprm_caps_from_vfs_caps()
753 static int get_file_caps(struct linux_binprm *bprm, const struct file *file, in get_file_caps() argument
759 cap_clear(bprm->cred->cap_permitted); in get_file_caps()
780 bprm->filename); in get_file_caps()
786 rc = bprm_caps_from_vfs_caps(&vcaps, bprm, effective, has_fcap); in get_file_caps()
790 cap_clear(bprm->cred->cap_permitted); in get_file_caps()
818 static void handle_privileged_root(struct linux_binprm *bprm, bool has_fcap, in handle_privileged_root() argument
822 struct cred *new = bprm->cred; in handle_privileged_root()
832 warn_setuid_and_fcaps_mixed(bprm->filename); in handle_privileged_root()
909 int cap_bprm_creds_from_file(struct linux_binprm *bprm, const struct file *file) in cap_bprm_creds_from_file() argument
913 struct cred *new = bprm->cred; in cap_bprm_creds_from_file()
921 ret = get_file_caps(bprm, file, &effective, &has_fcap); in cap_bprm_creds_from_file()
927 handle_privileged_root(bprm, has_fcap, &effective, root_uid); in cap_bprm_creds_from_file()
931 bprm->per_clear |= PER_CLEAR_ON_SETID; in cap_bprm_creds_from_file()
941 ((bprm->unsafe & ~LSM_UNSAFE_PTRACE) || in cap_bprm_creds_from_file()
945 (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)) { in cap_bprm_creds_from_file()
979 ret = audit_log_bprm_fcaps(bprm, new, old); in cap_bprm_creds_from_file()
996 bprm->secureexec = 1; in cap_bprm_creds_from_file()