exec: Rename bprm->cred_prepared to called_set_creds
The cred_prepared bprm flag has a misleading name. It has nothing to do with the bprm_prepare_cred hook, and actually tracks if bprm_set_creds has been called. Rename this flag and improve its comment. Cc: David Howells <dhowells@redhat.com> Cc: Stephen Smalley <sds@tycho.nsa.gov> Cc: Casey Schaufler <casey@schaufler-ca.com> Signed-off-by: Kees Cook <keescook@chromium.org> Acked-by: John Johansen <john.johansen@canonical.com> Acked-by: James Morris <james.l.morris@oracle.com> Acked-by: Paul Moore <paul@paul-moore.com> Acked-by: Serge Hallyn <serge@hallyn.com>
This commit is contained in:
parent
520eccdfe1
commit
ddb4a1442d
7 changed files with 12 additions and 8 deletions
|
@ -890,7 +890,7 @@ static int load_flat_shared_library(int id, struct lib_info *libs)
|
|||
* as we're past the point of no return and are dealing with shared
|
||||
* libraries.
|
||||
*/
|
||||
bprm.cred_prepared = 1;
|
||||
bprm.called_set_creds = 1;
|
||||
|
||||
res = prepare_binprm(&bprm);
|
||||
|
||||
|
|
|
@ -1548,7 +1548,7 @@ int prepare_binprm(struct linux_binprm *bprm)
|
|||
retval = security_bprm_set_creds(bprm);
|
||||
if (retval)
|
||||
return retval;
|
||||
bprm->cred_prepared = 1;
|
||||
bprm->called_set_creds = 1;
|
||||
|
||||
memset(bprm->buf, 0, BINPRM_BUF_SIZE);
|
||||
return kernel_read(bprm->file, 0, bprm->buf, BINPRM_BUF_SIZE);
|
||||
|
|
|
@ -25,8 +25,12 @@ struct linux_binprm {
|
|||
struct mm_struct *mm;
|
||||
unsigned long p; /* current top of mem */
|
||||
unsigned int
|
||||
cred_prepared:1,/* true if creds already prepared (multiple
|
||||
* preps happen for interpreters) */
|
||||
/*
|
||||
* True after the bprm_set_creds hook has been called once
|
||||
* (multiple calls can be made via prepare_binprm() for
|
||||
* binfmt_script/misc).
|
||||
*/
|
||||
called_set_creds:1,
|
||||
cap_effective:1;/* true if has elevated effective capabilities,
|
||||
* false if not; except for init which inherits
|
||||
* its parent's caps anyway */
|
||||
|
|
|
@ -758,7 +758,7 @@ int apparmor_bprm_set_creds(struct linux_binprm *bprm)
|
|||
file_inode(bprm->file)->i_mode
|
||||
};
|
||||
|
||||
if (bprm->cred_prepared)
|
||||
if (bprm->called_set_creds)
|
||||
return 0;
|
||||
|
||||
ctx = cred_ctx(bprm->cred);
|
||||
|
|
|
@ -2356,7 +2356,7 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm)
|
|||
|
||||
/* SELinux context only depends on initial program or script and not
|
||||
* the script interpreter */
|
||||
if (bprm->cred_prepared)
|
||||
if (bprm->called_set_creds)
|
||||
return 0;
|
||||
|
||||
old_tsec = current_security();
|
||||
|
|
|
@ -917,7 +917,7 @@ static int smack_bprm_set_creds(struct linux_binprm *bprm)
|
|||
struct superblock_smack *sbsp;
|
||||
int rc;
|
||||
|
||||
if (bprm->cred_prepared)
|
||||
if (bprm->called_set_creds)
|
||||
return 0;
|
||||
|
||||
isp = inode->i_security;
|
||||
|
|
|
@ -76,7 +76,7 @@ static int tomoyo_bprm_set_creds(struct linux_binprm *bprm)
|
|||
* Do only if this function is called for the first time of an execve
|
||||
* operation.
|
||||
*/
|
||||
if (bprm->cred_prepared)
|
||||
if (bprm->called_set_creds)
|
||||
return 0;
|
||||
#ifndef CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue