diff options
-rw-r--r-- | usr.bin/apply/apply.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/usr.bin/apply/apply.c b/usr.bin/apply/apply.c index fe060a0..978062f 100644 --- a/usr.bin/apply/apply.c +++ b/usr.bin/apply/apply.c @@ -210,13 +210,14 @@ system(command) return(1); omask = sigblock(sigmask(SIGCHLD)); - switch(pid = fork()) { + switch(pid = vfork()) { case -1: /* error */ - err(1, "fork"); + err(1, "vfork"); case 0: /* child */ (void)sigsetmask(omask); execl(shell, name, "-c", command, NULL); - err(1, "%s", shell); + warn("%s", shell); + _exit(1); } intsave = signal(SIGINT, SIG_IGN); quitsave = signal(SIGQUIT, SIG_IGN); |