From b58feca65cb2426b553828e5dff2eb0b213fa05b Mon Sep 17 00:00:00 2001 From: Jordan Rome Date: Thu, 25 May 2023 14:40:58 -0700 Subject: [PATCH] core: change 'basename' to 'path_extract_filename' This is part of a cleanup effort in the TODO doc. Tested locally: `meson compile -C build && meson test -C build` --- src/core/load-fragment.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index ebfe98d7cc9..554180f1e31 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -6173,10 +6173,14 @@ int unit_load_fragment(Unit *u) { * declared in the file system. In particular, this is true (and frequent) for device and swap units. */ const char *id = u->id; - _cleanup_free_ char *free_id = NULL; + _cleanup_free_ char *filename = NULL, *free_id = NULL; if (fragment) { - id = basename(fragment); + r = path_extract_filename(fragment, &filename); + if (r < 0) + return log_debug_errno(r, "Failed to extract filename from fragment '%s': %m", fragment); + id = filename; + if (unit_name_is_valid(id, UNIT_NAME_TEMPLATE)) { assert(u->instance); /* If we're not trying to use a template for non-instanced unit, * this must be set. */ -- 2.47.3