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);