diff options
-rw-r--r-- | fs/binfmt_elf.c | 12 | ||||
-rw-r--r-- | fs/binfmt_elf_fdpic.c | 12 | ||||
-rw-r--r-- | init/Kconfig | 2 |
3 files changed, 12 insertions, 14 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 48ffb3dc610a..efc673163ef5 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -228,10 +228,10 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, | |||
228 | NEW_AUX_ENT(AT_BASE, interp_load_addr); | 228 | NEW_AUX_ENT(AT_BASE, interp_load_addr); |
229 | NEW_AUX_ENT(AT_FLAGS, 0); | 229 | NEW_AUX_ENT(AT_FLAGS, 0); |
230 | NEW_AUX_ENT(AT_ENTRY, exec->e_entry); | 230 | NEW_AUX_ENT(AT_ENTRY, exec->e_entry); |
231 | NEW_AUX_ENT(AT_UID, cred->uid); | 231 | NEW_AUX_ENT(AT_UID, from_kuid_munged(cred->user_ns, cred->uid)); |
232 | NEW_AUX_ENT(AT_EUID, cred->euid); | 232 | NEW_AUX_ENT(AT_EUID, from_kuid_munged(cred->user_ns, cred->euid)); |
233 | NEW_AUX_ENT(AT_GID, cred->gid); | 233 | NEW_AUX_ENT(AT_GID, from_kgid_munged(cred->user_ns, cred->gid)); |
234 | NEW_AUX_ENT(AT_EGID, cred->egid); | 234 | NEW_AUX_ENT(AT_EGID, from_kgid_munged(cred->user_ns, cred->egid)); |
235 | NEW_AUX_ENT(AT_SECURE, security_bprm_secureexec(bprm)); | 235 | NEW_AUX_ENT(AT_SECURE, security_bprm_secureexec(bprm)); |
236 | NEW_AUX_ENT(AT_RANDOM, (elf_addr_t)(unsigned long)u_rand_bytes); | 236 | NEW_AUX_ENT(AT_RANDOM, (elf_addr_t)(unsigned long)u_rand_bytes); |
237 | NEW_AUX_ENT(AT_EXECFN, bprm->exec); | 237 | NEW_AUX_ENT(AT_EXECFN, bprm->exec); |
@@ -1367,8 +1367,8 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, | |||
1367 | psinfo->pr_flag = p->flags; | 1367 | psinfo->pr_flag = p->flags; |
1368 | rcu_read_lock(); | 1368 | rcu_read_lock(); |
1369 | cred = __task_cred(p); | 1369 | cred = __task_cred(p); |
1370 | SET_UID(psinfo->pr_uid, cred->uid); | 1370 | SET_UID(psinfo->pr_uid, from_kuid_munged(cred->user_ns, cred->uid)); |
1371 | SET_GID(psinfo->pr_gid, cred->gid); | 1371 | SET_GID(psinfo->pr_gid, from_kgid_munged(cred->user_ns, cred->gid)); |
1372 | rcu_read_unlock(); | 1372 | rcu_read_unlock(); |
1373 | strncpy(psinfo->pr_fname, p->comm, sizeof(psinfo->pr_fname)); | 1373 | strncpy(psinfo->pr_fname, p->comm, sizeof(psinfo->pr_fname)); |
1374 | 1374 | ||
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index 9bd5612a8224..82bf0ed0cd10 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c | |||
@@ -631,10 +631,10 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm, | |||
631 | NEW_AUX_ENT(AT_BASE, interp_params->elfhdr_addr); | 631 | NEW_AUX_ENT(AT_BASE, interp_params->elfhdr_addr); |
632 | NEW_AUX_ENT(AT_FLAGS, 0); | 632 | NEW_AUX_ENT(AT_FLAGS, 0); |
633 | NEW_AUX_ENT(AT_ENTRY, exec_params->entry_addr); | 633 | NEW_AUX_ENT(AT_ENTRY, exec_params->entry_addr); |
634 | NEW_AUX_ENT(AT_UID, (elf_addr_t) cred->uid); | 634 | NEW_AUX_ENT(AT_UID, (elf_addr_t) from_kuid_munged(cred->user_ns, cred->uid)); |
635 | NEW_AUX_ENT(AT_EUID, (elf_addr_t) cred->euid); | 635 | NEW_AUX_ENT(AT_EUID, (elf_addr_t) from_kuid_munged(cred->user_ns, cred->euid)); |
636 | NEW_AUX_ENT(AT_GID, (elf_addr_t) cred->gid); | 636 | NEW_AUX_ENT(AT_GID, (elf_addr_t) from_kgid_munged(cred->user_ns, cred->gid)); |
637 | NEW_AUX_ENT(AT_EGID, (elf_addr_t) cred->egid); | 637 | NEW_AUX_ENT(AT_EGID, (elf_addr_t) from_kgid_munged(cred->user_ns, cred->egid)); |
638 | NEW_AUX_ENT(AT_SECURE, security_bprm_secureexec(bprm)); | 638 | NEW_AUX_ENT(AT_SECURE, security_bprm_secureexec(bprm)); |
639 | NEW_AUX_ENT(AT_EXECFN, bprm->exec); | 639 | NEW_AUX_ENT(AT_EXECFN, bprm->exec); |
640 | 640 | ||
@@ -1431,8 +1431,8 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, | |||
1431 | psinfo->pr_flag = p->flags; | 1431 | psinfo->pr_flag = p->flags; |
1432 | rcu_read_lock(); | 1432 | rcu_read_lock(); |
1433 | cred = __task_cred(p); | 1433 | cred = __task_cred(p); |
1434 | SET_UID(psinfo->pr_uid, cred->uid); | 1434 | SET_UID(psinfo->pr_uid, from_kuid_munged(cred->user_ns, cred->uid)); |
1435 | SET_GID(psinfo->pr_gid, cred->gid); | 1435 | SET_GID(psinfo->pr_gid, from_kgid_munged(cred->user_ns, cred->gid)); |
1436 | rcu_read_unlock(); | 1436 | rcu_read_unlock(); |
1437 | strncpy(psinfo->pr_fname, p->comm, sizeof(psinfo->pr_fname)); | 1437 | strncpy(psinfo->pr_fname, p->comm, sizeof(psinfo->pr_fname)); |
1438 | 1438 | ||
diff --git a/init/Kconfig b/init/Kconfig index 3349670149dc..994a53ec1d8a 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -865,8 +865,6 @@ config UIDGID_CONVERTED | |||
865 | 865 | ||
866 | # List of kernel pieces that need user namespace work | 866 | # List of kernel pieces that need user namespace work |
867 | # Features | 867 | # Features |
868 | depends on BINFMT_ELF = n | ||
869 | depends on BINFMT_ELF_FDPIC = n | ||
870 | depends on UNIX98_PTYS = n | 868 | depends on UNIX98_PTYS = n |
871 | depends on CGROUPS = n | 869 | depends on CGROUPS = n |
872 | depends on MIGRATION = n | 870 | depends on MIGRATION = n |