Merge tag 'amd-drm-fixes-5.13-2021-05-05' of https://gitlab.freedesktop.org/agd5f...
[linux-2.6-microblaze.git] / fs / binfmt_elf_fdpic.c
index 03d81a1..3cfd6cd 100644 (file)
@@ -506,6 +506,7 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
        char __user *u_platform, *u_base_platform, *p;
        int loop;
        int nr; /* reset for each csp adjustment */
+       unsigned long flags = 0;
 
 #ifdef CONFIG_MMU
        /* In some cases (e.g. Hyper-Threading), we want to avoid L1 evictions
@@ -648,7 +649,9 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
        NEW_AUX_ENT(AT_PHENT,   sizeof(struct elf_phdr));
        NEW_AUX_ENT(AT_PHNUM,   exec_params->hdr.e_phnum);
        NEW_AUX_ENT(AT_BASE,    interp_params->elfhdr_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,   exec_params->entry_addr);
        NEW_AUX_ENT(AT_UID,     (elf_addr_t) from_kuid_munged(cred->user_ns, cred->uid));
        NEW_AUX_ENT(AT_EUID,    (elf_addr_t) from_kuid_munged(cred->user_ns, cred->euid));