Mercurial > dovecot > core-2.2
changeset 21317:1892618b85f9
master: Removed unused process_exec(extra_args) parameter
Removes unnecessarily complicated code marked with @UNSAFE.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 12 Dec 2016 03:48:49 +0200 |
parents | 72af7bbcb8e2 |
children | 5e70e91e4c78 |
files | src/master/common.h src/master/main.c src/master/service-process.c |
diffstat | 3 files changed, 3 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/master/common.h Thu Dec 15 18:15:21 2016 +0200 +++ b/src/master/common.h Mon Dec 12 03:48:49 2016 +0200 @@ -13,8 +13,7 @@ extern struct service_list *services; extern bool startup_finished; -void process_exec(const char *cmd, const char *extra_args[]) - ATTR_NORETURN ATTR_NULL(2); +void process_exec(const char *cmd) ATTR_NORETURN; int get_uidgid(const char *user, uid_t *uid_r, gid_t *gid_r, const char **error_r);
--- a/src/master/main.c Thu Dec 15 18:15:21 2016 +0200 +++ b/src/master/main.c Mon Dec 12 03:48:49 2016 +0200 @@ -58,27 +58,13 @@ NULL }; -void process_exec(const char *cmd, const char *extra_args[]) +void process_exec(const char *cmd) { const char *executable, *p, **argv; argv = t_strsplit(cmd, " "); executable = argv[0]; - if (extra_args != NULL) { - unsigned int count1, count2; - const char **new_argv; - - /* @UNSAFE */ - count1 = str_array_length(argv); - count2 = str_array_length(extra_args); - new_argv = t_new(const char *, count1 + count2 + 1); - memcpy(new_argv, argv, sizeof(const char *) * count1); - memcpy(new_argv + count1, extra_args, - sizeof(const char *) * count2); - argv = new_argv; - } - /* hide the path, it's ugly */ p = strrchr(argv[0], '/'); if (p != NULL) argv[0] = p+1;
--- a/src/master/service-process.c Thu Dec 15 18:15:21 2016 +0200 +++ b/src/master/service-process.c Mon Dec 12 03:48:49 2016 +0200 @@ -323,7 +323,7 @@ service_reopen_inet_listeners(service); service_dup_fds(service); drop_privileges(service); - process_exec(service->executable, NULL); + process_exec(service->executable); } i_assert(hash_table_lookup(service_pids, POINTER_CAST(pid)) == NULL);