diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/process/posix_spawn.c | 4 | 
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); | 
