]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
chase-symlinks: Return zero from access() and stat() helpers
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 17 Mar 2023 09:06:13 +0000 (10:06 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 21 Mar 2023 15:08:35 +0000 (16:08 +0100)
We never check if r > 0 when using these helpers, so let's just
return zero like we usually do.

src/basic/chase-symlinks.c

index 16d36693b1044437f4d71de7ac1f105fb8e8ecde..2eb1701e44dc20ea8e904755ab128bbf1034e0f5 100644 (file)
@@ -667,14 +667,10 @@ int chase_symlinks_and_stat(
         assert(ret_stat);
 
         if (empty_or_root(root) && !ret_path &&
-            (chase_flags & (CHASE_NO_AUTOFS|CHASE_SAFE|CHASE_PROHIBIT_SYMLINKS|CHASE_PARENT|CHASE_MKDIR_0755)) == 0) {
+            (chase_flags & (CHASE_NO_AUTOFS|CHASE_SAFE|CHASE_PROHIBIT_SYMLINKS|CHASE_PARENT|CHASE_MKDIR_0755)) == 0)
                 /* Shortcut this call if none of the special features of this call are requested */
-
-                if (fstatat(AT_FDCWD, path, ret_stat, FLAGS_SET(chase_flags, CHASE_NOFOLLOW) ? AT_SYMLINK_NOFOLLOW : 0) < 0)
-                        return -errno;
-
-                return 1;
-        }
+                return RET_NERRNO(fstatat(AT_FDCWD, path, ret_stat,
+                                          FLAGS_SET(chase_flags, CHASE_NOFOLLOW) ? AT_SYMLINK_NOFOLLOW : 0));
 
         r = chase_symlinks(path, root, chase_flags, ret_path ? &p : NULL, &path_fd);
         if (r < 0)
@@ -687,7 +683,7 @@ int chase_symlinks_and_stat(
         if (ret_path)
                 *ret_path = TAKE_PTR(p);
 
-        return 1;
+        return 0;
 }
 
 int chase_symlinks_and_access(
@@ -705,14 +701,10 @@ int chase_symlinks_and_access(
         assert(!(chase_flags & (CHASE_NONEXISTENT|CHASE_STEP)));
 
         if (empty_or_root(root) && !ret_path &&
-            (chase_flags & (CHASE_NO_AUTOFS|CHASE_SAFE|CHASE_PROHIBIT_SYMLINKS|CHASE_PARENT|CHASE_MKDIR_0755)) == 0) {
+            (chase_flags & (CHASE_NO_AUTOFS|CHASE_SAFE|CHASE_PROHIBIT_SYMLINKS|CHASE_PARENT|CHASE_MKDIR_0755)) == 0)
                 /* Shortcut this call if none of the special features of this call are requested */
-
-                if (faccessat(AT_FDCWD, path, access_mode, FLAGS_SET(chase_flags, CHASE_NOFOLLOW) ? AT_SYMLINK_NOFOLLOW : 0) < 0)
-                        return -errno;
-
-                return 1;
-        }
+                return RET_NERRNO(faccessat(AT_FDCWD, path, access_mode,
+                                            FLAGS_SET(chase_flags, CHASE_NOFOLLOW) ? AT_SYMLINK_NOFOLLOW : 0));
 
         r = chase_symlinks(path, root, chase_flags, ret_path ? &p : NULL, &path_fd);
         if (r < 0)
@@ -726,7 +718,7 @@ int chase_symlinks_and_access(
         if (ret_path)
                 *ret_path = TAKE_PTR(p);
 
-        return 1;
+        return 0;
 }
 
 int chase_symlinks_and_fopen_unlocked(