Skip to content

Commit

Permalink
aout: move setup_arg_pages() prior to reading/mapping the binary
Browse files Browse the repository at this point in the history
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Al Viro authored and Linus Torvalds committed Mar 5, 2012
1 parent 550cf00 commit 6414fa6
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
14 changes: 7 additions & 7 deletions arch/x86/ia32/ia32_aout.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,13 @@ static int load_aout_binary(struct linux_binprm *bprm, struct pt_regs *regs)
current->mm->free_area_cache = TASK_UNMAPPED_BASE;
current->mm->cached_hole_size = 0;

retval = setup_arg_pages(bprm, IA32_STACK_TOP, EXSTACK_DEFAULT);
if (retval < 0) {
/* Someone check-me: is this error path enough? */
send_sig(SIGKILL, current, 0);
return retval;
}

install_exec_creds(bprm);
current->flags &= ~PF_FORKNOEXEC;

Expand Down Expand Up @@ -410,13 +417,6 @@ static int load_aout_binary(struct linux_binprm *bprm, struct pt_regs *regs)

set_brk(current->mm->start_brk, current->mm->brk);

retval = setup_arg_pages(bprm, IA32_STACK_TOP, EXSTACK_DEFAULT);
if (retval < 0) {
/* Someone check-me: is this error path enough? */
send_sig(SIGKILL, current, 0);
return retval;
}

current->mm->start_stack =
(unsigned long)create_aout_tables((char __user *)bprm->p, bprm);
/* start thread */
Expand Down
14 changes: 7 additions & 7 deletions fs/binfmt_aout.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,13 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
current->mm->free_area_cache = current->mm->mmap_base;
current->mm->cached_hole_size = 0;

retval = setup_arg_pages(bprm, STACK_TOP, EXSTACK_DEFAULT);
if (retval < 0) {
/* Someone check-me: is this error path enough? */
send_sig(SIGKILL, current, 0);
return retval;
}

install_exec_creds(bprm);
current->flags &= ~PF_FORKNOEXEC;

Expand Down Expand Up @@ -352,13 +359,6 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
return retval;
}

retval = setup_arg_pages(bprm, STACK_TOP, EXSTACK_DEFAULT);
if (retval < 0) {
/* Someone check-me: is this error path enough? */
send_sig(SIGKILL, current, 0);
return retval;
}

current->mm->start_stack =
(unsigned long) create_aout_tables((char __user *) bprm->p, bprm);
#ifdef __alpha__
Expand Down

0 comments on commit 6414fa6

Please sign in to comment.