|
@@ -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;
|
|
|
|
|
@@ -410,13 +417,6 @@ beyond_if:
|
|
|
|
|
|
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 */
|