From: Jordan Rome Date: Thu, 25 May 2023 21:40:58 +0000 (-0700) Subject: core: change 'basename' to 'path_extract_filename' X-Git-Tag: v254-rc1~373 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b58feca65cb2426b553828e5dff2eb0b213fa05b;p=thirdparty%2Fsystemd.git 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` --- 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. */