From a424e4af6df0efd2897030f6863923d729d391bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Mon, 27 May 2024 15:38:18 +0200 Subject: [PATCH] tmpfiles: improve warning message and use O_NOCTTY Mention in the warning message for a failed open on a to be removed file why systemd-tmpfiles tried to open it. Also open the file with the O_NOCTTY flag, since it should never become the controlling terminal. --- src/tmpfiles/tmpfiles.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 3ade4ee32e..807925f199 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -892,9 +892,9 @@ static int dir_cleanup( continue; if (!arg_dry_run) { - fd = xopenat(dirfd(d), de->d_name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NOATIME|O_NONBLOCK); + fd = xopenat(dirfd(d), de->d_name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NOATIME|O_NONBLOCK|O_NOCTTY); if (fd < 0 && !IN_SET(fd, -ENOENT, -ELOOP)) - log_warning_errno(fd, "Opening file \"%s\" failed, ignoring: %m", sub_path); + log_warning_errno(fd, "Opening file \"%s\" failed, proceeding without lock: %m", sub_path); if (fd >= 0 && flock(fd, LOCK_EX|LOCK_NB) < 0 && errno == EAGAIN) { log_debug_errno(errno, "Couldn't acquire shared BSD lock on file \"%s\", skipping: %m", sub_path); continue;