[SV 39851] Reinstate stack size limit for processes spawned via $(shell)
authorPetr Machata <pmachata@redhat.com>
Thu, 22 Aug 2013 14:46:17 +0000 (16:46 +0200)
committerPaul Smith <psmith@gnu.org>
Sun, 15 Sep 2013 00:38:06 +0000 (20:38 -0400)
ChangeLog
function.c

index 14a6ce4..fdb921f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        * makefile.vms: Ditto.
        * po/POTFILES.in: Ditto.
 
+2013-08-22  Petr Machata  <pmachata@redhat.com>
+
+       * function.c (func_shell_base): Get rid of any avoidable limit on
+       stack size for processes spawned via $(shell).
+
 2013-07-22  Paul Smith  <psmith@gnu.org>
 
        * implicit.c (pattern_search): Use PARSE_SIMPLE_SEQ() even for
index 40e1098..4ea2446 100644 (file)
@@ -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