diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/exec.c | 5 |
1 files changed, 5 insertions, 0 deletions
| @@ -594,6 +594,11 @@ int setup_arg_pages(struct linux_binprm *bprm, | |||
| 594 | #else | 594 | #else |
| 595 | stack_top = arch_align_stack(stack_top); | 595 | stack_top = arch_align_stack(stack_top); |
| 596 | stack_top = PAGE_ALIGN(stack_top); | 596 | stack_top = PAGE_ALIGN(stack_top); |
| 597 | |||
| 598 | if (unlikely(stack_top < mmap_min_addr) || | ||
| 599 | unlikely(vma->vm_end - vma->vm_start >= stack_top - mmap_min_addr)) | ||
| 600 | return -ENOMEM; | ||
| 601 | |||
| 597 | stack_shift = vma->vm_end - stack_top; | 602 | stack_shift = vma->vm_end - stack_top; |
| 598 | 603 | ||
| 599 | bprm->p -= stack_shift; | 604 | bprm->p -= stack_shift; |
