Create a new define for the maximum allowed process stack size for
STACK_GROWSUP architectures. This allows the value to be overridden in
architecture specific code where necessary.
Signed-off-by: Will Newton <[email protected]>
---
The only in-tree architecture this affects is parisc. I don't have a
parisc box here to test with, but I have tested this change on an
out-of-tree Linux port with STACK_GROWSUP set.
fs/exec.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/fs/exec.c b/fs/exec.c
index 632b02e..d37a626 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -573,10 +573,13 @@ int setup_arg_pages(struct linux_binprm *bprm,
unsigned long stack_base;
#ifdef CONFIG_STACK_GROWSUP
- /* Limit stack size to 1GB */
+ /* Limit stack size to 1GB by default. */
+#ifndef STACK_MAX_SIZE
+#define STACK_MAX_SIZE (1 << 30)
+#endif
stack_base = current->signal->rlim[RLIMIT_STACK].rlim_max;
- if (stack_base > (1 << 30))
- stack_base = 1 << 30;
+ if (stack_base > STACK_MAX_SIZE)
+ stack_base = STACK_MAX_SIZE;
/* Make sure we didn't let the argument array grow too large. */
if (vma->vm_end - vma->vm_start > stack_base)
--
1.5.5.2