diff options
-rw-r--r-- | usr.bin/window/wwspawn.c | 4 | ||||
-rw-r--r-- | usr.bin/window/wwterminfo.c | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/usr.bin/window/wwspawn.c b/usr.bin/window/wwspawn.c index 57e2f66..3588dd8 100644 --- a/usr.bin/window/wwspawn.c +++ b/usr.bin/window/wwspawn.c @@ -42,7 +42,7 @@ static char sccsid[] = "@(#)wwspawn.c 8.1 (Berkeley) 6/6/93"; #include <signal.h> /* - * There is a dead lock with vfork and closing of pseudo-ports. + * There is a dead lock with fork and closing of pseudo-ports. * So we have to be sneaky about error reporting. */ wwspawn(wp, file, argv) @@ -56,7 +56,7 @@ char **argv; int s; s = sigblock(sigmask(SIGCHLD)); - switch (pid = vfork()) { + switch (pid = fork()) { case -1: wwerrno = WWE_SYS; ret = -1; diff --git a/usr.bin/window/wwterminfo.c b/usr.bin/window/wwterminfo.c index d814452..89994c0 100644 --- a/usr.bin/window/wwterminfo.c +++ b/usr.bin/window/wwterminfo.c @@ -91,13 +91,17 @@ wwterminfoinit() */ wwterminfoend() { - + char *args[4]; + args[0] = _PATH_RM; + args[1] = "-rf"; + args[2] = wwterminfopath; + args[3] = NULL; switch (vfork()) { case -1: /* can't really do (or say) anything about errors */ return -1; case 0: - execl(_PATH_RM, _PATH_RM, "-rf", wwterminfopath, 0); + execv(args[0], args); _exit(0); default: wait(NULL); |