From afeee5432f8e22c90715fd949f240c845c4a6b6f Mon Sep 17 00:00:00 2001 From: Tomoki Shirasawa Date: Fri, 28 Aug 2015 13:00:45 +0900 Subject: [PATCH] When envp is NULL, execve is delayed. --- executer/kernel/binfmt_mcexec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/executer/kernel/binfmt_mcexec.c b/executer/kernel/binfmt_mcexec.c index 8259cc8b..6ffbe15f 100644 --- a/executer/kernel/binfmt_mcexec.c +++ b/executer/kernel/binfmt_mcexec.c @@ -81,6 +81,8 @@ static int load_elf(struct linux_binprm *bprm int l; int pass; + if(bprm->envc == 0) + return -ENOEXEC; if(memcmp(elf_ex->e_ident, ELFMAG, SELFMAG) != 0) return -ENOEXEC; if(elf_ex->e_type != ET_EXEC && elf_ex->e_type != ET_DYN) @@ -100,7 +102,7 @@ static int load_elf(struct linux_binprm *bprm cnt[1] = bprm->envc; for(pass = 0; pass < 2; pass++){ p = bprm->p; - mode = cnt[0] == 0? (cnt[1] == 0? 2: 1): 0; + mode = cnt[0] == 0? 1: 0; if(pass == 1){ for(ep = env; ep->name; ep++){ if(ep->l)