From: Yu Watanabe Date: Sat, 7 Oct 2023 06:53:44 +0000 (+0900) Subject: tree-wide: use path_simplify_alloc() more X-Git-Tag: v255-rc1~299^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cf3d95b25dadaf59ac503538f8e989f90bc36638;p=thirdparty%2Fsystemd.git tree-wide: use path_simplify_alloc() more --- diff --git a/src/core/unit.c b/src/core/unit.c index 2d096cbaefb..8d652354eb0 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -4935,14 +4935,14 @@ int unit_require_mounts_for(Unit *u, const char *path, UnitDependencyMask mask) if (hashmap_contains(u->requires_mounts_for, path)) /* Exit quickly if the path is already covered. */ return 0; - _cleanup_free_ char *p = strdup(path); - if (!p) - return -ENOMEM; - /* Use the canonical form of the path as the stored key. We call path_is_normalized() * only after simplification, since path_is_normalized() rejects paths with '.'. * path_is_normalized() also verifies that the path fits in PATH_MAX. */ - path = path_simplify(p); + _cleanup_free_ char *p = NULL; + r = path_simplify_alloc(path, &p); + if (r < 0) + return r; + path = p; if (!path_is_normalized(path)) return -EPERM; diff --git a/src/shared/install.c b/src/shared/install.c index ba3be0e99d0..8b0705eb9ef 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -581,11 +581,9 @@ static int mark_symlink_for_removal( if (r < 0) return r; - n = strdup(p); - if (!n) - return -ENOMEM; - - path_simplify(n); + r = path_simplify_alloc(p, &n); + if (r < 0) + return r; r = set_consume(*remove_symlinks_to, n); if (r == -EEXIST) diff --git a/src/shared/varlink.c b/src/shared/varlink.c index 1d6e7fb64eb..121de882bbf 100644 --- a/src/shared/varlink.c +++ b/src/shared/varlink.c @@ -501,6 +501,7 @@ int varlink_connect_url(Varlink **ret, const char *url) { _cleanup_free_ char *c = NULL; const char *p; bool exec; + int r; assert_return(ret, -EINVAL); assert_return(url, -EINVAL); @@ -533,11 +534,9 @@ int varlink_connect_url(Varlink **ret, const char *url) { if (!path_is_absolute(p)) return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "Specified path not absolute, refusing."); - c = strdup(p); - if (!c) - return log_oom_debug(); - - path_simplify(c); + r = path_simplify_alloc(p, &c); + if (r < 0) + return r; if (!path_is_normalized(c)) return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "Specified path is not normalized, refusing.");