]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
execute: let recurse_dir() concate the cred name for us
authorLennart Poettering <lennart@poettering.net>
Wed, 13 Apr 2022 20:48:30 +0000 (22:48 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 22 Apr 2022 09:32:46 +0000 (11:32 +0200)
recurse_dir() allows specifiying a freely choosable initial path to
which to append the subdirs as it descends into the tree. If we pass the
configured id there, recurse_dir() will suffix the subdir to that for
us, so that we don't have to do that manually anymore in the callback,
simplifying things a bit.

src/core/execute.c

index 580589eab8279154ced5f9f6537acdbb7bf421bc..eb06215266c4e1bba6d5d4b520da37e5b44b3189 100644 (file)
@@ -2718,8 +2718,8 @@ static int load_cred_recurse_dir_cb(
                 const struct statx *sx,
                 void *userdata) {
 
-        _cleanup_free_ char *credname = NULL, *sub_id = NULL;
         struct load_cred_args *args = ASSERT_PTR(userdata);
+        _cleanup_free_ char *sub_id = NULL;
         int r;
 
         if (event != RECURSE_DIR_ENTRY)
@@ -2728,11 +2728,7 @@ static int load_cred_recurse_dir_cb(
         if (!IN_SET(de->d_type, DT_REG, DT_SOCK))
                 return RECURSE_DIR_CONTINUE;
 
-        credname = strreplace(path, "/", "_");
-        if (!credname)
-                return -ENOMEM;
-
-        sub_id = strjoin(args->parent_load_credential->id, "_", credname);
+        sub_id = strreplace(path, "/", "_");
         if (!sub_id)
                 return -ENOMEM;
 
@@ -2832,7 +2828,7 @@ static int acquire_credentials(
 
                         r = recurse_dir(
                                         sub_fd,
-                                        /* path= */ NULL,
+                                        /* path= */ lc->id, /* recurse_dir() will suffix the subdir paths from here to the top-level id */
                                         /* statx_mask= */ 0,
                                         /* n_depth_max= */ UINT_MAX,
                                         RECURSE_DIR_IGNORE_DOT|RECURSE_DIR_ENSURE_TYPE,