ntpd(8) has logic in place to delete its control socket on shutdown, but it
authormestre <mestre@openbsd.org>
Thu, 2 Aug 2018 13:05:34 +0000 (13:05 +0000)
committermestre <mestre@openbsd.org>
Thu, 2 Aug 2018 13:05:34 +0000 (13:05 +0000)
currently doesn't call the function control_cleanup to do so. The solution is
to simply call that function just before the program quits.

"sure" henning@

usr.sbin/ntpd/ntpd.c

index 0ec3ede..aba1322 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ntpd.c,v 1.113 2017/01/09 14:49:22 reyk Exp $ */
+/*     $OpenBSD: ntpd.c,v 1.114 2018/08/02 13:05:34 mestre Exp $ */
 
 /*
  * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -244,7 +244,7 @@ main(int argc, char *argv[])
         * Constraint processes are forked with certificates in memory,
         * then privdrop into chroot before speaking to the outside world.
         */
-       if (pledge("stdio rpath inet settime proc exec id", NULL) == -1)
+       if (pledge("stdio rpath cpath inet settime proc exec id", NULL) == -1)
                err(1, "pledge");
 
        while (quit == 0) {
@@ -327,6 +327,7 @@ main(int argc, char *argv[])
 
        msgbuf_clear(&ibuf->w);
        free(ibuf);
+       control_cleanup(CTLSOCKET);
        log_info("Terminating");
        return (0);
 }