diff options
Diffstat (limited to 'fs/exec.c')
-rw-r--r-- | fs/exec.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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; |