From: Mike Yuan Date: Sun, 27 Apr 2025 18:05:40 +0000 (+0200) Subject: socket-activate: remove effectively unused 'name' param for exec_process() X-Git-Tag: v258-rc1~729^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0964b022fa3aea49ea17606fcf7afb4e2b3b46bc;p=thirdparty%2Fsystemd.git socket-activate: remove effectively unused 'name' param for exec_process() --- diff --git a/src/socket-activate/socket-activate.c b/src/socket-activate/socket-activate.c index 477f9d66567..0a367799f83 100644 --- a/src/socket-activate/socket-activate.c +++ b/src/socket-activate/socket-activate.c @@ -123,10 +123,14 @@ static int open_sockets(int *ret_epoll_fd, bool accept) { return count; } -static int exec_process(const char *name, char **argv, int start_fd, size_t n_fds) { +static int exec_process(char * const *argv, int start_fd, size_t n_fds) { _cleanup_strv_free_ char **envp = NULL; int r; + assert(!strv_isempty(argv)); + assert(start_fd >= 0); + assert(n_fds > 0); + if (arg_inetd && n_fds != 1) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "--inetd only supported for single file descriptors."); @@ -206,17 +210,20 @@ static int exec_process(const char *name, char **argv, int start_fd, size_t n_fd if (!joined) return log_oom(); - log_info("Execing %s (%s)", name, joined); - execvpe(name, argv, envp); + log_info("Executing: %s", joined); + execvpe(argv[0], argv, envp); - return log_error_errno(errno, "Failed to execp %s (%s): %m", name, joined); + return log_error_errno(errno, "Failed to execute '%s': %m", joined); } -static int fork_and_exec_process(const char *child, char **argv, int fd) { +static int fork_and_exec_process(char * const *argv, int fd) { _cleanup_free_ char *joined = NULL; pid_t child_pid; int r; + assert(!strv_isempty(argv)); + assert(fd >= 0); + joined = strv_join(argv, " "); if (!joined) return log_oom(); @@ -228,15 +235,15 @@ static int fork_and_exec_process(const char *child, char **argv, int fd) { return r; if (r == 0) { /* In the child */ - exec_process(child, argv, fd, 1); + (void) exec_process(argv, fd, 1); _exit(EXIT_FAILURE); } - log_info("Spawned %s (%s) as PID " PID_FMT ".", child, joined, child_pid); + log_info("Spawned '%s' as PID " PID_FMT ".", joined, child_pid); return 0; } -static int do_accept(const char *name, char **argv, int fd) { +static int do_accept(char * const *argv, int fd) { _cleanup_free_ char *local = NULL, *peer = NULL; _cleanup_close_ int fd_accepted = -EBADF; @@ -252,7 +259,7 @@ static int do_accept(const char *name, char **argv, int fd) { (void) getpeername_pretty(fd_accepted, true, &peer); log_info("Connection from %s to %s", strna(peer), strna(local)); - return fork_and_exec_process(name, argv, fd_accepted); + return fork_and_exec_process(argv, fd_accepted); } /* SIGCHLD handler. */ @@ -477,14 +484,14 @@ static int run(int argc, char **argv) { log_info("Communication attempt on fd %i.", event.data.fd); if (arg_accept) { - r = do_accept(exec_argv[0], exec_argv, event.data.fd); + r = do_accept(exec_argv, event.data.fd); if (r < 0) return r; } else break; } - return exec_process(exec_argv[0], exec_argv, SD_LISTEN_FDS_START, (size_t) n); + return exec_process(exec_argv, SD_LISTEN_FDS_START, (size_t) n); } DEFINE_MAIN_FUNCTION(run);