mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-17 22:52:40 +01:00
39 lines
979 B
Diff
39 lines
979 B
Diff
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 */
|
|
|