X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Ftmpfiles%2Ftmpfiles.c;fp=src%2Ftmpfiles%2Ftmpfiles.c;h=c4c6d8e6938af3318d494e6b143d9715cd404be5;hp=55a6a7bb54505528744983251d80ae5af7e8f71e;hb=1532227a19f9ec56b4b32f0bfa6806c55d6ce14c;hpb=8dc1b304ee134c8b2ad56b9ebaf9ae3b38332f73 diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 55a6a7bb5..c4c6d8e69 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -174,7 +174,6 @@ static bool takes_ownership(ItemType t) { CREATE_CHAR_DEVICE, CREATE_BLOCK_DEVICE, COPY_FILES, - WRITE_FILE, IGNORE_PATH, IGNORE_DIRECTORY_PATH, @@ -314,16 +313,16 @@ static DIR* xopendirat_nomod(int dirfd, const char *path) { DIR *dir; dir = xopendirat(dirfd, path, O_NOFOLLOW|O_NOATIME); - if (!dir) { - log_debug_errno(errno, "Cannot open %sdirectory \"%s\": %m", - dirfd == AT_FDCWD ? "" : "sub", path); - if (errno == EPERM) { - dir = xopendirat(dirfd, path, O_NOFOLLOW); - if (!dir) - log_debug_errno(errno, "Cannot open %sdirectory \"%s\": %m", - dirfd == AT_FDCWD ? "" : "sub", path); - } - } + if (dir) + return dir; + + log_debug_errno(errno, "Cannot open %sdirectory \"%s\": %m", dirfd == AT_FDCWD ? "" : "sub", path); + if (errno != EPERM) + return NULL; + + dir = xopendirat(dirfd, path, O_NOFOLLOW); + if (!dir) + log_debug_errno(errno, "Cannot open %sdirectory \"%s\": %m", dirfd == AT_FDCWD ? "" : "sub", path); return dir; }