aboutsummaryrefslogtreecommitdiffstats
path: root/fs/exec.c
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2010-08-15 01:06:31 -0400
committerLen Brown <len.brown@intel.com>2010-08-15 01:06:31 -0400
commit95ee46aa8698f2000647dfb362400fadbb5807cf (patch)
treee5a05c7297f997e191c73091934e42e3195c0e40 /fs/exec.c
parentcfa806f059801dbe7e435745eb2e187c8bfe1e7f (diff)
parent92fa5bd9a946b6e7aab6764e7312e4e3d9bed295 (diff)
Merge branch 'linus' into release
Conflicts: drivers/acpi/debug.c Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'fs/exec.c')
-rw-r--r--fs/exec.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/fs/exec.c b/fs/exec.c
index e19de6a80339..7761837e4500 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -28,7 +28,6 @@
28#include <linux/mm.h> 28#include <linux/mm.h>
29#include <linux/stat.h> 29#include <linux/stat.h>
30#include <linux/fcntl.h> 30#include <linux/fcntl.h>
31#include <linux/smp_lock.h>
32#include <linux/swap.h> 31#include <linux/swap.h>
33#include <linux/string.h> 32#include <linux/string.h>
34#include <linux/init.h> 33#include <linux/init.h>
@@ -129,7 +128,7 @@ SYSCALL_DEFINE1(uselib, const char __user *, library)
129 if (file->f_path.mnt->mnt_flags & MNT_NOEXEC) 128 if (file->f_path.mnt->mnt_flags & MNT_NOEXEC)
130 goto exit; 129 goto exit;
131 130
132 fsnotify_open(file->f_path.dentry); 131 fsnotify_open(file);
133 132
134 error = -ENOEXEC; 133 error = -ENOEXEC;
135 if(file->f_op) { 134 if(file->f_op) {
@@ -653,6 +652,7 @@ int setup_arg_pages(struct linux_binprm *bprm,
653 else 652 else
654 stack_base = vma->vm_start - stack_expand; 653 stack_base = vma->vm_start - stack_expand;
655#endif 654#endif
655 current->mm->start_stack = bprm->p;
656 ret = expand_stack(vma, stack_base); 656 ret = expand_stack(vma, stack_base);
657 if (ret) 657 if (ret)
658 ret = -EFAULT; 658 ret = -EFAULT;
@@ -683,7 +683,7 @@ struct file *open_exec(const char *name)
683 if (file->f_path.mnt->mnt_flags & MNT_NOEXEC) 683 if (file->f_path.mnt->mnt_flags & MNT_NOEXEC)
684 goto exit; 684 goto exit;
685 685
686 fsnotify_open(file->f_path.dentry); 686 fsnotify_open(file);
687 687
688 err = deny_write_access(file); 688 err = deny_write_access(file);
689 if (err) 689 if (err)
@@ -1891,13 +1891,7 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
1891 */ 1891 */
1892 clear_thread_flag(TIF_SIGPENDING); 1892 clear_thread_flag(TIF_SIGPENDING);
1893 1893
1894 /*
1895 * lock_kernel() because format_corename() is controlled by sysctl, which
1896 * uses lock_kernel()
1897 */
1898 lock_kernel();
1899 ispipe = format_corename(corename, signr); 1894 ispipe = format_corename(corename, signr);
1900 unlock_kernel();
1901 1895
1902 if (ispipe) { 1896 if (ispipe) {
1903 int dump_count; 1897 int dump_count;