summaryrefslogtreecommitdiff
path: root/src/process/posix_spawn.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/process/posix_spawn.c')
-rw-r--r--src/process/posix_spawn.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/process/posix_spawn.c b/src/process/posix_spawn.c
index 1120be08..604756e9 100644
--- a/src/process/posix_spawn.c
+++ b/src/process/posix_spawn.c
@@ -8,6 +8,8 @@
extern char **environ;
+pid_t __vfork(void);
+
int __posix_spawnx(pid_t *restrict res, const char *restrict path,
int (*exec)(const char *, char *const *),
const posix_spawn_file_actions_t *fa,
@@ -22,7 +24,7 @@ int __posix_spawnx(pid_t *restrict res, const char *restrict path,
if (!attr) attr = &dummy_attr;
sigprocmask(SIG_BLOCK, (void *)(uint64_t []){-1}, &oldmask);
- pid = __syscall(SYS_fork);
+ pid = __vfork();
if (pid) {
sigprocmask(SIG_SETMASK, &oldmask, 0);