Lines Matching refs:bprm
291 static inline void bprm_clear_caps(struct linux_binprm *bprm) in bprm_clear_caps() argument
293 cap_clear(bprm->cred->cap_permitted); in bprm_clear_caps()
294 bprm->cap_effective = false; in bprm_clear_caps()
345 struct linux_binprm *bprm, in bprm_caps_from_vfs_caps() argument
349 struct cred *new = bprm->cred; in bprm_caps_from_vfs_caps()
446 static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_cap) in get_file_caps() argument
451 bprm_clear_caps(bprm); in get_file_caps()
456 if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) in get_file_caps()
459 rc = get_vfs_caps_from_disk(bprm->file->f_path.dentry, &vcaps); in get_file_caps()
463 __func__, rc, bprm->filename); in get_file_caps()
469 rc = bprm_caps_from_vfs_caps(&vcaps, bprm, effective, has_cap); in get_file_caps()
472 __func__, rc, bprm->filename); in get_file_caps()
476 bprm_clear_caps(bprm); in get_file_caps()
489 int cap_bprm_set_creds(struct linux_binprm *bprm) in cap_bprm_set_creds() argument
492 struct cred *new = bprm->cred; in cap_bprm_set_creds()
501 ret = get_file_caps(bprm, &effective, &has_cap); in cap_bprm_set_creds()
514 warn_setuid_and_fcaps_mixed(bprm->filename); in cap_bprm_set_creds()
536 bprm->per_clear |= PER_CLEAR_ON_SETID; in cap_bprm_set_creds()
548 bprm->unsafe & ~LSM_UNSAFE_PTRACE_CAP) { in cap_bprm_set_creds()
551 (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)) { in cap_bprm_set_creds()
584 bprm->cap_effective = effective; in cap_bprm_set_creds()
602 ret = audit_log_bprm_fcaps(bprm, new, old); in cap_bprm_set_creds()
626 int cap_bprm_secureexec(struct linux_binprm *bprm) in cap_bprm_secureexec() argument
632 if (bprm->cap_effective) in cap_bprm_secureexec()