fix problem when 0, 1, or 2 are closed when sendmail starts up
authorEric Allman <eric@ucbvax.Berkeley.EDU>
Sat, 25 Sep 1993 22:24:51 +0000 (14:24 -0800)
committerEric Allman <eric@ucbvax.Berkeley.EDU>
Sat, 25 Sep 1993 22:24:51 +0000 (14:24 -0800)
SCCS-vsn: usr.sbin/sendmail/src/main.c 8.28

usr/src/usr.sbin/sendmail/src/main.c

index 9100e2b..05f8715 100644 (file)
@@ -13,7 +13,7 @@ static char copyright[] =
 #endif /* not lint */
 
 #ifndef lint
 #endif /* not lint */
 
 #ifndef lint
-static char sccsid[] = "@(#)main.c     8.27 (Berkeley) %G%";
+static char sccsid[] = "@(#)main.c     8.28 (Berkeley) %G%";
 #endif /* not lint */
 
 #define        _DEFINE
 #endif /* not lint */
 
 #define        _DEFINE
@@ -160,7 +160,8 @@ main(argc, argv, envp)
                (void) dup2(i, STDOUT_FILENO);
        if (fstat(STDERR_FILENO, &stb) < 0 && errno != EOPNOTSUPP)
                (void) dup2(i, STDERR_FILENO);
                (void) dup2(i, STDOUT_FILENO);
        if (fstat(STDERR_FILENO, &stb) < 0 && errno != EOPNOTSUPP)
                (void) dup2(i, STDERR_FILENO);
-       (void) close(i);
+       if (i != STDIN_FILENO && i != STDOUT_FILENO && i != STDERR_FILENO)
+               (void) close(i);
 
        i = DtableSize;
        while (--i > 0)
 
        i = DtableSize;
        while (--i > 0)