From 70ff760d416adcb182b191f9efbc92b8a3d8f095 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 17 Oct 2019 10:41:39 +0200 Subject: [PATCH] login: reduce file-descriptors cleanup overhead Addresses: https://github.com/karelzak/util-linux/issues/883 Signed-off-by: Karel Zak --- login-utils/login.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/login-utils/login.c b/login-utils/login.c index d213e4784b..23bb3c4344 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -1116,14 +1116,15 @@ static void __attribute__((__noreturn__)) usage(void) int main(int argc, char **argv) { int c; - int cnt; char *childArgv[10]; char *buff; int childArgc = 0; int retcode; struct sigaction act; struct passwd *pwd; - + static const int wanted_fds[] = { + STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO + }; struct login_context cxt = { .tty_mode = TTY_MODE, /* tty chmod() */ .pid = getpid(), /* PID */ @@ -1218,8 +1219,7 @@ int main(int argc, char **argv) *p++ = ' '; } - for (cnt = get_fd_tabsize() - 1; cnt > 2; cnt--) - close(cnt); + close_all_fds(wanted_fds, ARRAY_SIZE(wanted_fds)); setpgrp(); /* set pgid to pid this means that setsid() will fail */ init_tty(&cxt); -- 2.39.2