From 33d8a82aacbb709d13761caa3089c673b9558dd9 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Sun, 3 Aug 2025 18:59:40 +0200 Subject: [PATCH] [#4037] Replaced umask by fchmod --- src/lib/log/interprocess/interprocess_sync_file.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/log/interprocess/interprocess_sync_file.cc b/src/lib/log/interprocess/interprocess_sync_file.cc index ed6a5b7e2f..c77b9ea3f9 100644 --- a/src/lib/log/interprocess/interprocess_sync_file.cc +++ b/src/lib/log/interprocess/interprocess_sync_file.cc @@ -54,10 +54,14 @@ InterprocessSyncFile::do_lock(int cmd, short l_type) { // Open the lockfile in the constructor so it doesn't do the access // checks every time a message is logged. - const mode_t mode = umask(S_IXUSR | S_IXGRP | S_IXOTH); // 0111 fd_ = open(lockfile_path.c_str(), O_CREAT | O_RDWR, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); // 0660 - umask(mode); + if (fd_ != -1) { + if (fchmod(fd_, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP) != 0) { + close(fd_); + fd_ = -1; + } + } if (fd_ == -1) { std::stringstream tmp;