Use malloc when construction the command argv instead of stack space. This fixes overflowing the stack when building webkit on uclibc based systems. https://savannah.gnu.org/bugs/index.php?36451 --- ./job.c.orig +++ ./job.c @@ -2865,7 +2865,7 @@ return new_argv; } - new_line = alloca (shell_len + 1 + sflags_len + 1 + new_line = xmalloc (shell_len + 1 + sflags_len + 1 + (line_len*2) + 1); ap = new_line; memcpy (ap, shell, shell_len); @@ -2923,9 +2923,11 @@ #endif *ap++ = *p; } - if (ap == new_line + shell_len + sflags_len + 2) + if (ap == new_line + shell_len + sflags_len + 2) { /* Line was empty. */ + free (new_line); return 0; + } *ap = '\0'; #ifdef WINDOWS32 @@ -3065,6 +3067,7 @@ fatal (NILF, _("%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"), __FILE__, __LINE__); #endif + free (new_line); } #endif /* ! AMIGA */