]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/basic/fs-util.c
path-util: rework file_in_same_dir() on top of path_extract_directory()
[thirdparty/systemd.git] / src / basic / fs-util.c
index ed020b1b08b988369d95aa01f3f358d6b34958e2..a895f4f2df2eb3c851d90704b6afab8acc4d6d8b 100644 (file)
@@ -174,24 +174,18 @@ int readlink_value(const char *p, char **ret) {
         return 0;
 }
 
-int readlink_and_make_absolute(const char *p, char **r) {
+int readlink_and_make_absolute(const char *p, char **ret) {
         _cleanup_free_ char *target = NULL;
-        char *k;
-        int j;
+        int r;
 
         assert(p);
-        assert(r);
-
-        j = readlink_malloc(p, &target);
-        if (j < 0)
-                return j;
+        assert(ret);
 
-        k = file_in_same_dir(p, target);
-        if (!k)
-                return -ENOMEM;
+        r = readlink_malloc(p, &target);
+        if (r < 0)
+                return r;
 
-        *r = k;
-        return 0;
+        return file_in_same_dir(p, target, ret);
 }
 
 int chmod_and_chown_at(int dir_fd, const char *path, mode_t mode, uid_t uid, gid_t gid) {