X-Git-Url: https://bbs.cooldavid.org/git/?a=blobdiff_plain;f=fs%2Fexec.c;h=1b63237fc6dced1062c392523fed094ce7dacc56;hb=1b528181b2ffa14721fb28ad1bd539fe1732c583;hp=2d9455282744bce582e48e0ecec4f4a6d332a28c;hpb=be6200aac985e0a3db56ec636763a32f3e32e7f1;p=net-next-2.6.git diff --git a/fs/exec.c b/fs/exec.c index 2d945528274..1b63237fc6d 100644 --- a/fs/exec.c +++ b/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;