diff options
author | OMOJOLA JOSHUA DAMILOLA <omojolajoshua@gmail.com> | 2023-04-01 18:52:32 +0000 |
---|---|---|
committer | Luca Boccassi <luca.boccassi@gmail.com> | 2023-04-04 00:10:22 +0100 |
commit | de2820606d872ddc9c82cc138a5bdfc302863a2d (patch) | |
tree | ac8af3e7c9a69ccc31db668ca7fd92b185303f1d /src | |
parent | ee9fc74a4c9a417cc421510ff26d3575082255e0 (diff) | |
download | systemd-de2820606d872ddc9c82cc138a5bdfc302863a2d.tar.gz |
src: changed usage of basename() to path_extract_filename().
TODO.
Diffstat (limited to 'src')
-rw-r--r-- | src/basic/unit-file.c | 17 | ||||
-rw-r--r-- | src/network/networkd-network-bus.c | 9 |
2 files changed, 19 insertions, 7 deletions
diff --git a/src/basic/unit-file.c b/src/basic/unit-file.c index 70b7eb1606..41422579d6 100644 --- a/src/basic/unit-file.c +++ b/src/basic/unit-file.c @@ -71,10 +71,11 @@ int unit_symlink_name_compatible(const char *symlink, const char *target, bool i } int unit_validate_alias_symlink_or_warn(int log_level, const char *filename, const char *target) { - const char *src, *dst; + _cleanup_free_ char *src = NULL, *dst = NULL; _cleanup_free_ char *src_instance = NULL, *dst_instance = NULL; UnitType src_unit_type, dst_unit_type; UnitNameFlags src_name_type, dst_name_type; + int r; /* Check if the *alias* symlink is valid. This applies to symlinks like * /etc/systemd/system/dbus.service → dbus-broker.service, but not to .wants or .requires symlinks @@ -87,8 +88,13 @@ int unit_validate_alias_symlink_or_warn(int log_level, const char *filename, con * -ELOOP for an alias to self. */ - src = basename(filename); - dst = basename(target); + r = path_extract_filename(filename, &src); + if (r < 0) + return r; + + r = path_extract_filename(target, &dst); + if (r < 0) + return r; /* src checks */ @@ -762,7 +768,10 @@ int unit_file_find_fragment( } if (fragment && ret_names) { - const char *fragment_basename = basename(fragment); + _cleanup_free_ char *fragment_basename = NULL; + r = path_extract_filename(fragment, &fragment_basename); + if (r < 0) + return r; if (!streq(fragment_basename, unit_name)) { /* Add names based on the fragment name to the set of names */ diff --git a/src/network/networkd-network-bus.c b/src/network/networkd-network-bus.c index e1e89e8357..0c4032633f 100644 --- a/src/network/networkd-network-bus.c +++ b/src/network/networkd-network-bus.c @@ -4,6 +4,7 @@ #include "ether-addr-util.h" #include "networkd-manager.h" #include "networkd-network-bus.h" +#include "path-util.h" #include "string-util.h" #include "strv.h" @@ -54,8 +55,8 @@ static const sd_bus_vtable network_vtable[] = { }; static char *network_bus_path(Network *network) { - _cleanup_free_ char *name = NULL; - char *networkname, *d, *path; + _cleanup_free_ char *name = NULL, *networkname= NULL; + char *d, *path; int r; assert(network); @@ -65,7 +66,9 @@ static char *network_bus_path(Network *network) { if (!name) return NULL; - networkname = basename(name); + r = path_extract_filename(name, &networkname); + if (r < 0) + return NULL; d = strrchr(networkname, '.'); if (!d) |