From: Yu Watanabe Date: Tue, 3 Dec 2024 09:58:11 +0000 (+0900) Subject: exec-util: use open_terminal() in fork_agent() for safety X-Git-Tag: v258-rc1~1890^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0ace1655db51278da005bfe08660f00ca601f2c;p=thirdparty%2Fsystemd.git exec-util: use open_terminal() in fork_agent() for safety --- diff --git a/src/shared/exec-util.c b/src/shared/exec-util.c index 725962ef83c..6ab32bea920 100644 --- a/src/shared/exec-util.c +++ b/src/shared/exec-util.c @@ -594,9 +594,9 @@ int _fork_agent(const char *name, const int except[], size_t n_except, pid_t *re * that when systemctl is started via popen() or a similar call that expects to read EOF we * actually do generate EOF and not delay this indefinitely by keeping an unused copy of * stdin around. */ - fd = open("/dev/tty", stdin_is_tty ? O_WRONLY : (stdout_is_tty && stderr_is_tty) ? O_RDONLY : O_RDWR); + fd = open_terminal("/dev/tty", stdin_is_tty ? O_WRONLY : (stdout_is_tty && stderr_is_tty) ? O_RDONLY : O_RDWR); if (fd < 0) { - log_error_errno(errno, "Failed to open /dev/tty: %m"); + log_error_errno(fd, "Failed to open /dev/tty: %m"); _exit(EXIT_FAILURE); }