Merge tag 'regmap-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[linux-2.6-microblaze.git] / fs / binfmt_elf.c
index 4c1550b..b12ba98 100644 (file)
@@ -186,6 +186,7 @@ create_elf_tables(struct linux_binprm *bprm, const struct elfhdr *exec,
        unsigned char k_rand_bytes[16];
        int items;
        elf_addr_t *elf_info;
+       elf_addr_t flags = 0;
        int ei_index;
        const struct cred *cred = current_cred();
        struct vm_area_struct *vma;
@@ -260,7 +261,9 @@ create_elf_tables(struct linux_binprm *bprm, const struct elfhdr *exec,
        NEW_AUX_ENT(AT_PHENT, sizeof(struct elf_phdr));
        NEW_AUX_ENT(AT_PHNUM, exec->e_phnum);
        NEW_AUX_ENT(AT_BASE, interp_load_addr);
-       NEW_AUX_ENT(AT_FLAGS, 0);
+       if (bprm->interp_flags & BINPRM_FLAGS_PRESERVE_ARGV0)
+               flags |= AT_FLAGS_PRESERVE_ARGV0;
+       NEW_AUX_ENT(AT_FLAGS, flags);
        NEW_AUX_ENT(AT_ENTRY, e_entry);
        NEW_AUX_ENT(AT_UID, from_kuid_munged(cred->user_ns, cred->uid));
        NEW_AUX_ENT(AT_EUID, from_kuid_munged(cred->user_ns, cred->euid));