]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/executor: save argv for later use by rename_process() 30384/head
authorMike Yuan <me@yhndnzj.com>
Fri, 8 Dec 2023 13:14:11 +0000 (21:14 +0800)
committerMike Yuan <me@yhndnzj.com>
Fri, 8 Dec 2023 13:49:27 +0000 (21:49 +0800)
Partially fixes #30352

src/core/executor.c

index 993cd4a4d2c852e7980b187fd7e6155b084b4b4d..51c727f3254e6c79cfcf27b6f378dba55c193f02 100644 (file)
@@ -6,6 +6,7 @@
 #include "sd-messages.h"
 
 #include "alloc-util.h"
+#include "argv-util.h"
 #include "build.h"
 #include "exec-invoke.h"
 #include "execute-serialize.h"
@@ -191,6 +192,11 @@ int main(int argc, char *argv[]) {
         exec_context_init(&context);
         cgroup_context_init(&cgroup_context);
 
+        /* We use safe_fork() for spawning sd-pam helper process, which internally calls rename_process().
+         * As the last step of renaming, all saved argvs are memzero()-ed. Hence, we need to save the argv
+         * first to prevent showing "intense" cmdline. See #30352. */
+        save_argc_argv(argc, argv);
+
         /* We might be starting the journal itself, we'll be told by the caller what to do */
         log_set_always_reopen_console(true);
         log_set_prohibit_ipc(true);