]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
chase: fix triggering assertion
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 5 Jun 2023 04:20:42 +0000 (13:20 +0900)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 5 Jun 2023 08:22:47 +0000 (10:22 +0200)
src/basic/chase.c

index 983901f71416d70c9a4f4e86b41350a7d425dd77..600e2b9d33c7f82e8241da71360783a804f72c05 100644 (file)
@@ -206,7 +206,7 @@ int chaseat(int dir_fd, const char *path, ChaseFlags flags, char **ret_path, int
         /* If we receive an absolute path together with AT_FDCWD, we need to return an absolute path, because
          * a relative path would be interpreted relative to the current working directory. Also, let's make
          * the result absolute when the file descriptor of the root directory is specified. */
-        bool need_absolute = (dir_fd == AT_FDCWD && path_is_absolute(path)) || dir_fd_is_root(dir_fd) > 0;
+        bool need_absolute = (dir_fd == AT_FDCWD && path_is_absolute(path)) || (dir_fd >= 0 && dir_fd_is_root(dir_fd) > 0);
         if (need_absolute) {
                 done = strdup("/");
                 if (!done)