about summary refs log tree commit diff
path: root/src/process
diff options
context:
space:
mode:
authorWill Dietz <w@wdtz.org>2017-09-14 16:32:59 -0500
committerRich Felker <dalias@aerifal.cx>2017-10-19 19:04:16 -0400
commit004dc9549b8003288e635ba5aa91e3353e1974c4 (patch)
tree8297be6882fe4bb666067284173bc0609354263c /src/process
parent2cd663fb2d576d590a08c1e40386c07b378d5ad6 (diff)
downloadmusl-004dc9549b8003288e635ba5aa91e3353e1974c4.tar.gz
musl-004dc9549b8003288e635ba5aa91e3353e1974c4.tar.xz
musl-004dc9549b8003288e635ba5aa91e3353e1974c4.zip
posix_spawn: use larger stack to cover worst-case in execvpe
execvpe stack-allocates a buffer used to hold the full path
(combination of a PATH entry and the program name)
while searching through $PATH, so at least
NAME_MAX+PATH_MAX is needed.

The stack size can be made conditionally smaller
(the current 1024 appears appropriate)
should this larger size be burdensome in those situations.
Diffstat (limited to 'src/process')
-rw-r--r--src/process/posix_spawn.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/process/posix_spawn.c b/src/process/posix_spawn.c
index ea5d2998..0849c71f 100644
--- a/src/process/posix_spawn.c
+++ b/src/process/posix_spawn.c
@@ -152,7 +152,7 @@ int __posix_spawnx(pid_t *restrict res, const char *restrict path,
 	char *const argv[restrict], char *const envp[restrict])
 {
 	pid_t pid;
-	char stack[1024];
+	char stack[1024+PATH_MAX];
 	int ec=0, cs;
 	struct args args;