summaryrefslogtreecommitdiffstats
path: root/fs/exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/exec.c')
-rw-r--r--fs/exec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/exec.c b/fs/exec.c
index a358a3c45..f023054c6 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -334,7 +334,7 @@ unsigned long setup_arg_pages(unsigned long p, struct linux_binprm * bprm)
mpnt->vm_flags = VM_STACK_FLAGS;
mpnt->vm_ops = NULL;
mpnt->vm_offset = 0;
- mpnt->vm_dentry = NULL;
+ mpnt->vm_file = NULL;
mpnt->vm_pte = 0;
insert_vm_struct(current->mm, mpnt);
current->mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
@@ -522,7 +522,7 @@ int flush_old_exec(struct linux_binprm * bprm)
* Release all of the old mmap stuff
*/
retval = exec_mmap();
- if (retval) goto flush_failed;
+ if (retval) goto mmap_failed;
/* This is the point of no return */
release_old_signals(oldsig);
@@ -550,6 +550,9 @@ int flush_old_exec(struct linux_binprm * bprm)
return 0;
+mmap_failed:
+ if (current->sig != oldsig)
+ kfree(current->sig);
flush_failed:
current->sig = oldsig;
return retval;