aboutsummaryrefslogtreecommitdiffstats
path: root/usr.sbin/smtpd/smtpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/smtpd/smtpd.c')
-rw-r--r--usr.sbin/smtpd/smtpd.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
index 45e37c33..9307fc3b 100644
--- a/usr.sbin/smtpd/smtpd.c
+++ b/usr.sbin/smtpd/smtpd.c
@@ -520,11 +520,11 @@ main(int argc, char *argv[])
char *rexec = NULL;
struct smtpd *conf;
-#ifndef HAVE___PROGNAME
+#ifdef NEED_PROGNAME
__progname = get_progname(argv[0]);
#endif
+ __progname = xstrdup(__progname);
-#ifndef HAVE_SETPROCTITLE
/* Save argv. Duplicate so setproctitle emulation doesn't clobber it */
saved_argc = argc;
saved_argv = xcalloc(argc + 1, sizeof(*saved_argv));
@@ -532,14 +532,15 @@ main(int argc, char *argv[])
saved_argv[i] = xstrdup(argv[i]);
saved_argv[i] = NULL;
+#ifdef NEED_SETPROCTITLE
/* Prepare for later setproctitle emulation */
compat_init_setproctitle(argc, argv);
argv = saved_argv;
+#endif
/* this is to work around GNU getopt + portable setproctitle() fuckery */
save_argc = saved_argc;
save_argv = saved_argv;
-#endif
if ((conf = config_default()) == NULL)
err(1, NULL);