|
From 0c286469c195738efc45001b1fcd4f8b4044a141 Mon Sep 17 00:00:00 2001
|
|
From: Brent Cook <busterb@gmail.com>
|
|
Date: Mon, 12 Jan 2015 06:18:31 -0600
|
|
Subject: [PATCH 09/12] initialize setproctitle where needed
|
|
|
|
We need to save a copy of argv and __progname to avoid setproctitle
|
|
clobbering them.
|
|
---
|
|
src/usr.sbin/ntpd/ntpd.c | 21 ++++++++++++++++++++-
|
|
1 file changed, 20 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/usr.sbin/ntpd/ntpd.c b/src/usr.sbin/ntpd/ntpd.c
|
|
index 40570ee..3d0ceb2 100644
|
|
--- a/src/usr.sbin/ntpd/ntpd.c
|
|
+++ b/src/usr.sbin/ntpd/ntpd.c
|
|
@@ -116,6 +116,13 @@ usage(void)
|
|
#define PFD_PIPE 0
|
|
#define PFD_MAX 1
|
|
|
|
+/* Saves a copy of argv for setproctitle emulation */
|
|
+#ifndef HAVE_SETPROCTITLE
|
|
+static char **saved_argv;
|
|
+#endif
|
|
+
|
|
+char *get_progname(char *argv0);
|
|
+
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
@@ -145,6 +152,18 @@ main(int argc, char *argv[])
|
|
|
|
log_init(1); /* log to stderr until daemonized */
|
|
|
|
+ __progname = get_progname(argv[0]);
|
|
+
|
|
+#ifndef HAVE_SETPROCTITLE
|
|
+ /* Prepare for later setproctitle emulation */
|
|
+ saved_argv = calloc(argc + 1, sizeof(*saved_argv));
|
|
+ for (i = 0; i < argc; i++)
|
|
+ saved_argv[i] = strdup(argv[i]);
|
|
+ saved_argv[i] = NULL;
|
|
+ compat_init_setproctitle(argc, argv);
|
|
+ argv = saved_argv;
|
|
+#endif
|
|
+
|
|
while ((ch = getopt(argc, argv, "df:np:sSv")) != -1) {
|
|
switch (ch) {
|
|
case 'd':
|
|
@@ -549,7 +568,7 @@ readfreq(void)
|
|
freqfp = fopen(DRIFTFILE, "w");
|
|
return;
|
|
}
|
|
-
|
|
+
|
|
freqfp = fdopen(fd, "r+");
|
|
|
|
/* if we're adjusting frequency already, don't override */
|
|
--
|
|
2.6.3
|
|
|