diff options
Diffstat (limited to 'main/make/use-malloc.patch')
-rw-r--r-- | main/make/use-malloc.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/main/make/use-malloc.patch b/main/make/use-malloc.patch new file mode 100644 index 0000000000..8e3284c03e --- /dev/null +++ b/main/make/use-malloc.patch @@ -0,0 +1,38 @@ +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 */ + |