diff options
Diffstat (limited to 'fs/exec.c')
-rw-r--r-- | fs/exec.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -735,6 +735,7 @@ static int exec_mmap(struct mm_struct *mm) | |||
735 | tsk->active_mm = mm; | 735 | tsk->active_mm = mm; |
736 | activate_mm(active_mm, mm); | 736 | activate_mm(active_mm, mm); |
737 | task_unlock(tsk); | 737 | task_unlock(tsk); |
738 | mm_update_next_owner(mm); | ||
738 | arch_pick_mmap_layout(mm); | 739 | arch_pick_mmap_layout(mm); |
739 | if (old_mm) { | 740 | if (old_mm) { |
740 | up_read(&old_mm->mmap_sem); | 741 | up_read(&old_mm->mmap_sem); |
@@ -963,6 +964,8 @@ int flush_old_exec(struct linux_binprm * bprm) | |||
963 | if (retval) | 964 | if (retval) |
964 | goto out; | 965 | goto out; |
965 | 966 | ||
967 | set_mm_exe_file(bprm->mm, bprm->file); | ||
968 | |||
966 | /* | 969 | /* |
967 | * Release all of the old mmap stuff | 970 | * Release all of the old mmap stuff |
968 | */ | 971 | */ |
@@ -1268,7 +1271,6 @@ int do_execve(char * filename, | |||
1268 | { | 1271 | { |
1269 | struct linux_binprm *bprm; | 1272 | struct linux_binprm *bprm; |
1270 | struct file *file; | 1273 | struct file *file; |
1271 | unsigned long env_p; | ||
1272 | struct files_struct *displaced; | 1274 | struct files_struct *displaced; |
1273 | int retval; | 1275 | int retval; |
1274 | 1276 | ||
@@ -1321,11 +1323,9 @@ int do_execve(char * filename, | |||
1321 | if (retval < 0) | 1323 | if (retval < 0) |
1322 | goto out; | 1324 | goto out; |
1323 | 1325 | ||
1324 | env_p = bprm->p; | ||
1325 | retval = copy_strings(bprm->argc, argv, bprm); | 1326 | retval = copy_strings(bprm->argc, argv, bprm); |
1326 | if (retval < 0) | 1327 | if (retval < 0) |
1327 | goto out; | 1328 | goto out; |
1328 | bprm->argv_len = env_p - bprm->p; | ||
1329 | 1329 | ||
1330 | retval = search_binary_handler(bprm,regs); | 1330 | retval = search_binary_handler(bprm,regs); |
1331 | if (retval >= 0) { | 1331 | if (retval >= 0) { |