]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
fs-util: enable automatic access mode logic in xopenat()
authorLennart Poettering <lennart@poettering.net>
Tue, 11 Nov 2025 10:35:16 +0000 (11:35 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 17 Nov 2025 16:31:49 +0000 (01:31 +0900)
src/basic/chase.c
src/basic/fs-util.h

index a547043c16c3061399458524964a941e6a3a0071..a90ae41d994b0e12d90ab34fbad3a3df44df834a 100644 (file)
@@ -412,11 +412,9 @@ int chaseat(int dir_fd, const char *path, ChaseFlags flags, char **ret_path, int
                                 return r;
 
                         if (FLAGS_SET(flags, CHASE_MKDIR_0755) && (!isempty(todo) || !(flags & (CHASE_PARENT|CHASE_NONEXISTENT)))) {
-                                child = xopenat_full(fd,
-                                                     first,
-                                                     O_DIRECTORY|O_CREAT|O_EXCL|O_NOFOLLOW|O_PATH|O_CLOEXEC,
-                                                     /* xopen_flags = */ 0,
-                                                     0755);
+                                child = xopenat(fd,
+                                                first,
+                                                O_DIRECTORY|O_CREAT|O_EXCL|O_NOFOLLOW|O_PATH|O_CLOEXEC);
                                 if (child < 0)
                                         return child;
                         } else if (FLAGS_SET(flags, CHASE_PARENT) && isempty(todo)) {
index 5e7ed32a5229e5eb80700dfc700b494413905d28..b26674d139f0ab4ba937a51ef1c1e4eecc561b72 100644 (file)
@@ -128,7 +128,7 @@ int openat_report_new(int dirfd, const char *pathname, int flags, mode_t mode, b
 
 int xopenat_full(int dir_fd, const char *path, int open_flags, XOpenFlags xopen_flags, mode_t mode);
 static inline int xopenat(int dir_fd, const char *path, int open_flags) {
-        return xopenat_full(dir_fd, path, open_flags, 0, 0);
+        return xopenat_full(dir_fd, path, open_flags, 0, MODE_INVALID);
 }
 
 int xopenat_lock_full(int dir_fd, const char *path, int open_flags, XOpenFlags xopen_flags, mode_t mode, LockType locktype, int operation);