fix problems created by using vfork
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Thu, 8 May 1986 06:18:41 +0000 (22:18 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Thu, 8 May 1986 06:18:41 +0000 (22:18 -0800)
SCCS-vsn: lib/libc/gen/syslog.c 5.9

usr/src/lib/libc/gen/syslog.c

index f5b3b45..ee8f31b 100644 (file)
@@ -130,16 +130,18 @@ syslog(pri, fmt, p0, p1, p2, p3, p4)
        if (pid == -1)
                return;
        if (pid == 0) {
        if (pid == -1)
                return;
        if (pid == 0) {
+               int fd;
+
                signal(SIGALRM, SIG_DFL);
                sigsetmask(sigblock(0) & ~sigmask(SIGALRM));
                alarm(5);
                signal(SIGALRM, SIG_DFL);
                sigsetmask(sigblock(0) & ~sigmask(SIGALRM));
                alarm(5);
-               LogFile = open(ctty, O_WRONLY);
+               fd = open(ctty, O_WRONLY);
                alarm(0);
                strcat(o, "\r");
                o = index(outline, '>') + 1;
                alarm(0);
                strcat(o, "\r");
                o = index(outline, '>') + 1;
-               write(LogFile, o, c + 1 - (o - outline));
-               close(LogFile);
-               exit(0);
+               write(fd, o, c + 1 - (o - outline));
+               close(fd);
+               _exit(0);
        }
        if (!(LogStat & LOG_NOWAIT))
                while ((c = wait((int *)0)) > 0 && c != pid)
        }
        if (!(LogStat & LOG_NOWAIT))
                while ((c = wait((int *)0)) > 0 && c != pid)