]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
nspawn: use chase() for creating dev nodes 43037/head
authorLuca Boccassi <luca.boccassi@gmail.com>
Thu, 16 Jul 2026 16:41:05 +0000 (17:41 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 16 Jul 2026 21:46:31 +0000 (22:46 +0100)
Follow-up for de40a3037af944f6803375f2f5269cffc4247f56

src/nspawn/nspawn.c

index f44a61db3fcd2d9b938c6b074b6f27e7974ecb89..959aef9b7167963c3074546cc789b56bbc5d15f3 100644 (file)
@@ -2232,9 +2232,9 @@ static int make_extra_nodes(const char *dest) {
         FOREACH_ARRAY(node, arg_extra_nodes, arg_n_extra_nodes) {
                 _cleanup_free_ char *path = NULL;
 
-                path = path_join(dest, node->path);
-                if (!path)
-                        return log_oom();
+                r = chase(node->path, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT|CHASE_NOFOLLOW, &path, /* ret_fd= */ NULL);
+                if (r < 0)
+                        return log_error_errno(r, "Failed to resolve device node path '%s': %m", node->path);
 
                 dev_t dev = S_ISCHR(node->mode) || S_ISBLK(node->mode) ? makedev(node->major, node->minor) : 0;
                 if (mknod(path, node->mode, dev) < 0)