diff --git a/src/process/posix_spawn.c b/src/process/posix_spawn.c index 1120be081e90c1f64a1a76cc645ec5095abf889a..604756e9f99239ac1ccf1b294d9270cd1263bd1f 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);