From 7fc01d33196f329c24766795b7af66e598c3e65b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 13 Feb 2011 17:18:45 +0100 Subject: [PATCH] systemctl: minor optimizations --- src/systemctl.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/systemctl.c b/src/systemctl.c index 94a12dde..dfa952ed 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -161,6 +161,7 @@ static void spawn_ask_password_agent(void) { }; int fd; + bool stdout_is_tty, stderr_is_tty; /* Make sure the agent goes away when the parent dies */ if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0) @@ -174,7 +175,10 @@ static void spawn_ask_password_agent(void) { /* Don't leak fds to the agent */ close_all_fds(NULL, 0); - if (!isatty(STDOUT_FILENO) || !isatty(STDERR_FILENO)) { + stdout_is_tty = isatty(STDOUT_FILENO); + stderr_is_tty = isatty(STDERR_FILENO); + + if (!stdout_is_tty || !stderr_is_tty) { /* Detach from stdout/stderr. and reopen * /dev/tty for them. This is important to * ensure that when systemctl is started via @@ -187,15 +191,11 @@ static void spawn_ask_password_agent(void) { _exit(EXIT_FAILURE); } - if (!isatty(STDOUT_FILENO)) { - close(STDOUT_FILENO); + if (!stdout_is_tty) dup2(fd, STDOUT_FILENO); - } - if (!isatty(STDERR_FILENO)) { - close(STDERR_FILENO); + if (!stderr_is_tty) dup2(fd, STDERR_FILENO); - } if (fd > 2) close(fd); -- 2.39.5