From ab78cbc71ce16dd39e4b6b9e42c02f75bf1d8a50 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Thu, 22 Aug 2013 16:46:17 +0200 Subject: [SV 39851] Reinstate stack size limit for processes spawned via $(shell) --- ChangeLog | 5 +++++ function.c | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 14a6ce4..fdb921f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -55,6 +55,11 @@ * makefile.vms: Ditto. * po/POTFILES.in: Ditto. +2013-08-22 Petr Machata + + * function.c (func_shell_base): Get rid of any avoidable limit on + stack size for processes spawned via $(shell). + 2013-07-22 Paul Smith * implicit.c (pattern_search): Use PARSE_SIMPLE_SEQ() even for diff --git a/function.c b/function.c index 40e1098..4ea2446 100644 --- a/function.c +++ b/function.c @@ -1718,7 +1718,14 @@ func_shell_base (char *o, char **argv, int trim_newlines) if (pid < 0) perror_with_name (error_prefix, "fork"); else if (pid == 0) - child_execute_job (0, pipedes[1], command_argv, envp); + { +#ifdef SET_STACK_SIZE + /* Reset limits, if necessary. */ + if (stack_limit.rlim_cur) + setrlimit (RLIMIT_STACK, &stack_limit); +#endif + child_execute_job (0, pipedes[1], command_argv, envp); + } else # endif #endif -- cgit v1.2.3