From 2bcd5c3f06244c3f6bfbc948460f4e264ae30b39 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 7 Sep 2010 19:35:49 -0700 Subject: [PATCH] --- yaml --- r: 210550 b: refs/heads/master c: 1b528181b2ffa14721fb28ad1bd539fe1732c583 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/exec.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 80f4ca524a4a..86fecad5f89d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: be6200aac985e0a3db56ec636763a32f3e32e7f1 +refs/heads/master: 1b528181b2ffa14721fb28ad1bd539fe1732c583 diff --git a/trunk/fs/exec.c b/trunk/fs/exec.c index 2d9455282744..1b63237fc6dc 100644 --- a/trunk/fs/exec.c +++ b/trunk/fs/exec.c @@ -594,6 +594,11 @@ int setup_arg_pages(struct linux_binprm *bprm, #else stack_top = arch_align_stack(stack_top); stack_top = PAGE_ALIGN(stack_top); + + if (unlikely(stack_top < mmap_min_addr) || + unlikely(vma->vm_end - vma->vm_start >= stack_top - mmap_min_addr)) + return -ENOMEM; + stack_shift = vma->vm_end - stack_top; bprm->p -= stack_shift;