summaryrefslogtreecommitdiff
path: root/src/udev/udev-node.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-06-03 00:53:58 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-06-04 15:51:39 +0900
commit1ddfb6cf29ad7bd4d2ebcc5049c7226579a8e2fb (patch)
treee475e7ebfaf703f36b23fef89917bddaee0f7c2e /src/udev/udev-node.c
parentf3b393e951450a5983ec91f47451dc561a0d977d (diff)
downloadsystemd-1ddfb6cf29ad7bd4d2ebcc5049c7226579a8e2fb.tar.gz
udev: use path_extract_directory() and path_equal()
Diffstat (limited to 'src/udev/udev-node.c')
-rw-r--r--src/udev/udev-node.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c
index d5a341baaa..b4f2a89668 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);