From: Yu Watanabe Date: Wed, 2 Jun 2021 15:53:58 +0000 (+0900) Subject: udev: use path_extract_directory() and path_equal() X-Git-Tag: v249-rc1~91^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ddfb6cf29ad7bd4d2ebcc5049c7226579a8e2fb;p=thirdparty%2Fsystemd.git udev: use path_extract_directory() and path_equal() --- diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c index d5a341baaac..b4f2a896686 100644 --- a/src/udev/udev-node.c +++ b/src/udev/udev-node.c @@ -43,9 +43,9 @@ static int node_symlink(sd_device *dev, const char *node, const char *slink) { assert(node); assert(slink); - slink_dirname = dirname_malloc(slink); - if (!slink_dirname) - return log_oom(); + r = path_extract_directory(slink, &slink_dirname); + if (r < 0) + return log_device_debug_errno(dev, r, "Failed to get parent directory of '%s': %m", slink); /* use relative link */ r = path_make_relative(slink_dirname, node, &target); @@ -60,7 +60,7 @@ static int node_symlink(sd_device *dev, const char *node, const char *slink) { "Conflicting inode '%s' found, link to '%s' will not be created.", slink, node); if (readlink_malloc(slink, &buf) >= 0 && - streq(target, buf)) { + path_equal(target, buf)) { /* preserve link with correct target, do not replace node of other device */ log_device_debug(dev, "Preserve already existing symlink '%s' to '%s'", slink, target);