]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
exec-util: use strv_from_stdarg_alloca() 35431/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 1 Dec 2024 08:43:31 +0000 (17:43 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 11 Dec 2024 23:35:16 +0000 (08:35 +0900)
No functional change, just refactoring.

src/shared/ask-password-agent.c
src/shared/exec-util.c
src/shared/polkit-agent.c

index b16d222359c10d92c5c26900c93f783941967698..c5898ca5640464a6b2cd04ca3d2bbe66a2eb4842 100644 (file)
@@ -25,7 +25,6 @@ int ask_password_agent_open(void) {
                        NULL, 0,
                        &agent_pid,
                        SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH,
-                       SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH,
                        "--watch");
         if (r < 0)
                 return log_error_errno(r, "Failed to fork TTY ask password agent: %m");
index 6ab32bea92026e7ee26b389cd173bd9a477ca823..35ceab980bb93b20249c2f235a79a9b3e63dc97f 100644 (file)
@@ -561,9 +561,6 @@ int shall_fork_agent(void) {
 }
 
 int _fork_agent(const char *name, const int except[], size_t n_except, pid_t *ret_pid, const char *path, ...) {
-        size_t n, i;
-        va_list ap;
-        char **l;
         int r;
 
         assert(path);
@@ -619,20 +616,7 @@ int _fork_agent(const char *name, const int except[], size_t n_except, pid_t *re
         }
 
         /* Count arguments */
-        va_start(ap, path);
-        for (n = 0; va_arg(ap, char*); n++)
-                ;
-        va_end(ap);
-
-        /* Allocate strv */
-        l = newa(char*, n + 1);
-
-        /* Fill in arguments */
-        va_start(ap, path);
-        for (i = 0; i <= n; i++)
-                l[i] = va_arg(ap, char*);
-        va_end(ap);
-
+        char **l = strv_from_stdarg_alloca(path);
         execv(path, l);
         log_error_errno(errno, "Failed to execute %s: %m", path);
         _exit(EXIT_FAILURE);
index ce1212e15e3d88eb7aa302b1880d0daf98705a9e..a652b465b9ffa3edaf11e734d11f60ebb4d7e61f 100644 (file)
@@ -45,7 +45,6 @@ int polkit_agent_open(void) {
                        1,
                        &agent_pid,
                        POLKIT_AGENT_BINARY_PATH,
-                       POLKIT_AGENT_BINARY_PATH,
                        "--notify-fd", notify_fd,
                        "--fallback");
         if (r < 0)