]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
homed: move away from basename()
authorLennart Poettering <lennart@poettering.net>
Wed, 21 Dec 2022 13:50:04 +0000 (14:50 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 23 Dec 2022 14:04:19 +0000 (15:04 +0100)
src/home/homed-manager.c

index 2fd1d67eff219237f07f5f7f6264889d7abd1e11..e1af7aa1ad155543c4e0352851f4e1f1745bc9a7 100644 (file)
@@ -1022,9 +1022,9 @@ static int manager_bind_varlink(Manager *m) {
                 return log_error_errno(r, "Failed to attach varlink connection to event loop: %m");
 
         assert(!m->userdb_service);
-        m->userdb_service = strdup(basename(socket_path));
-        if (!m->userdb_service)
-                return log_oom();
+        r = path_extract_filename(socket_path, &m->userdb_service);
+        if (r < 0)
+                return log_error_errno(r, "Failed to extra filename from socket path '%s': %m", socket_path);
 
         /* Avoid recursion */
         if (setenv("SYSTEMD_BYPASS_USERDB", m->userdb_service, 1) < 0)
@@ -1505,7 +1505,11 @@ static int manager_load_public_key_one(Manager *m, const char *path) {
 
         assert(m);
 
-        if (streq(basename(path), "local.public")) /* we already loaded the private key, which includes the public one */
+        r = path_extract_filename(path, &fn);
+        if (r < 0)
+                return log_error_errno(r, "Failed to extract filename of path '%s': %m", path);
+
+        if (streq(fn, "local.public")) /* we already loaded the private key, which includes the public one */
                 return 0;
 
         f = fopen(path, "re");
@@ -1534,10 +1538,6 @@ static int manager_load_public_key_one(Manager *m, const char *path) {
         if (!pkey)
                 return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to parse public key file %s.", path);
 
-        fn = strdup(basename(path));
-        if (!fn)
-                return log_oom();
-
         r = hashmap_put(m->public_keys, fn, pkey);
         if (r < 0)
                 return log_error_errno(r, "Failed to add public key to set: %m");