diff options
-rw-r--r-- | src/core/unit.c | 10 | ||||
-rw-r--r-- | src/shared/install.c | 8 | ||||
-rw-r--r-- | src/shared/varlink.c | 9 |
3 files changed, 12 insertions, 15 deletions
diff --git a/src/core/unit.c b/src/core/unit.c index 2d096cbaef..8d652354eb 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 ba3be0e99d..8b0705eb9e 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 1d6e7fb64e..121de882bb 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."); |