Use closefrom(3) instead of manually closing all file descriptors
authortb <tb@openbsd.org>
Wed, 24 Jan 2018 13:25:25 +0000 (13:25 +0000)
committertb <tb@openbsd.org>
Wed, 24 Jan 2018 13:25:25 +0000 (13:25 +0000)
between 3 and 19.

ok martijn, millert, jca

usr.bin/ftp/cmds.c

index e4d0db1..e47c8bf 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: cmds.c,v 1.79 2017/01/21 08:33:07 krw Exp $   */
+/*     $OpenBSD: cmds.c,v 1.80 2018/01/24 13:25:25 tb Exp $    */
 /*     $NetBSD: cmds.c,v 1.27 1997/08/18 10:20:15 lukem Exp $  */
 
 /*
@@ -987,8 +987,7 @@ shell(int argc, char *argv[])
        old1 = signal (SIGINT, SIG_IGN);
        old2 = signal (SIGQUIT, SIG_IGN);
        if ((pid = fork()) == 0) {
-               for (pid = 3; pid < 20; pid++)
-                       (void)close(pid);
+               (void)closefrom(3);
                (void)signal(SIGINT, SIG_DFL);
                (void)signal(SIGQUIT, SIG_DFL);
                shellp = getenv("SHELL");