changeset 19951:a3560297529f

doveadm: Move getenv to correct place All getenv()s must be done after master_service_init() or the pointer will be corrupted with Linux and other OSes without setproctitle().
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Wed, 23 Mar 2016 09:01:31 +0200
parents 4ccd54122839
children 23e80adaf2ef
files src/doveadm/doveadm.c
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/doveadm/doveadm.c	Tue Mar 22 01:16:26 2016 +0100
+++ b/src/doveadm/doveadm.c	Wed Mar 23 09:01:31 2016 +0200
@@ -291,7 +291,6 @@
 
 	memset(&cctx,0,sizeof(cctx));
 	cctx.cli = TRUE;
-	cctx.username = getenv("USER");
 
 	i_set_failure_exit_callback(failure_exit_callback);
 	doveadm_dsync_main(&argc, &argv);
@@ -369,6 +368,10 @@
 		i_set_debug_file("/dev/null");
 	}
 
+	/* this has to be done here because proctitle hack can break
+	   the env pointer */
+	cctx.username = getenv("USER");
+
 	if (!doveadm_cmd_try_run_ver2(cmd_name, argc, (const char**)argv, &cctx) &&
 	    !doveadm_try_run(cmd_name, argc, (const char **)argv) &&
 	    !doveadm_mail_try_run(cmd_name, argc, argv)) {