diff options
author | Lennart Poettering <lennart@poettering.net> | 2022-08-22 12:34:34 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2022-08-23 15:10:15 +0200 |
commit | 45519d13a4f2a3c3585e672595762ca621abe65e (patch) | |
tree | 8680b032714ce1b7f823049d1e71b6ecb4b7e308 /src/analyze | |
parent | 0f74ca8668ea7ebf920b4ccc4618d37bed5d0822 (diff) | |
download | systemd-45519d13a4f2a3c3585e672595762ca621abe65e.tar.gz |
tree-wide: port things dirname_malloc() → path_extract_directory()
Diffstat (limited to 'src/analyze')
-rw-r--r-- | src/analyze/analyze-verify-util.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/analyze/analyze-verify-util.c b/src/analyze/analyze-verify-util.c index 531144ba57..c309c07516 100644 --- a/src/analyze/analyze-verify-util.c +++ b/src/analyze/analyze-verify-util.c @@ -61,9 +61,9 @@ int verify_prepare_filename(const char *filename, char **ret) { return r; } - dir = dirname_malloc(abspath); - if (!dir) - return -ENOMEM; + r = path_extract_directory(abspath, &dir); + if (r < 0) + return r; c = path_join(dir, with_instance ?: name); if (!c) @@ -73,24 +73,30 @@ int verify_prepare_filename(const char *filename, char **ret) { return 0; } -int verify_generate_path(char **var, char **filenames) { +int verify_generate_path(char **ret, char **filenames) { _cleanup_strv_free_ char **ans = NULL; + _cleanup_free_ char *joined = NULL; const char *old; int r; STRV_FOREACH(filename, filenames) { + _cleanup_free_ char *a = NULL; char *t; - t = dirname_malloc(*filename); - if (!t) - return -ENOMEM; + r = path_make_absolute_cwd(*filename, &a); + if (r < 0) + return r; + + r = path_extract_directory(a, &t); + if (r < 0) + return r; r = strv_consume(&ans, t); if (r < 0) return r; } - assert_se(strv_uniq(ans)); + strv_uniq(ans); /* First, prepend our directories. Second, if some path was specified, use that, and * otherwise use the defaults. Any duplicates will be filtered out in path-lookup.c. @@ -106,10 +112,11 @@ int verify_generate_path(char **var, char **filenames) { return r; } - *var = strv_join(ans, ":"); - if (!*var) + joined = strv_join(ans, ":"); + if (!joined) return -ENOMEM; + *ret = TAKE_PTR(joined); return 0; } |