lkml.org 
[lkml]   [2020]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 07/11] exec: Set saved, fs, and effective ids together in bprm_fill_uid

    Now that there is only one place in bprm_fill_uid where the
    euid and the egid are set, move setting of the saved, and the
    fs ids to that place.

    This makes it clear that this is the only location in the function
    that changes these ids.

    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    ---
    fs/exec.c | 7 ++-----
    1 file changed, 2 insertions(+), 5 deletions(-)

    diff --git a/fs/exec.c b/fs/exec.c
    index 123402f218fe..8dd7254931dc 100644
    --- a/fs/exec.c
    +++ b/fs/exec.c
    @@ -1639,23 +1639,20 @@ static void bprm_fill_uid(struct linux_binprm *bprm)
    if (!need_cap ||
    (ns_capable(new->user_ns, CAP_SETUID) &&
    !(bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)))
    - new->euid = uid;
    + new->suid = new->fsuid = new->euid = uid;
    }
    if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {
    bprm->per_clear = 1;
    if (!need_cap ||
    (ns_capable(new->user_ns, CAP_SETGID) &&
    !(bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)))
    - new->egid = gid;
    + new->sgid = new->fsgid = new->egid = gid;
    }

    after_setid:
    /* Will the new creds have multiple uids or gids? */
    if (!uid_eq(new->euid, new->uid) || !gid_eq(new->egid, new->gid))
    bprm->secureexec = 1;
    -
    - new->suid = new->fsuid = new->euid;
    - new->sgid = new->fsgid = new->egid;
    }

    /*
    --
    2.25.0
    \
     
     \ /
      Last update: 2020-05-28 17:53    [W:4.064 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site