diff options
-rw-r--r-- | usr.sbin/syslogd/privsep.c | 6 | ||||
-rw-r--r-- | usr.sbin/syslogd/syslogd.8 | 6 | ||||
-rw-r--r-- | usr.sbin/syslogd/syslogd.c | 9 | ||||
-rw-r--r-- | usr.sbin/syslogd/syslogd.h | 5 |
4 files changed, 15 insertions, 11 deletions
diff --git a/usr.sbin/syslogd/privsep.c b/usr.sbin/syslogd/privsep.c index 22caa65c88c..499d49979ee 100644 --- a/usr.sbin/syslogd/privsep.c +++ b/usr.sbin/syslogd/privsep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: privsep.c,v 1.43 2014/08/25 20:19:14 bluhm Exp $ */ +/* $OpenBSD: privsep.c,v 1.44 2014/09/08 00:43:42 doug Exp $ */ /* * Copyright (c) 2003 Anil Madhavapeddy <anil@recoil.org> @@ -183,8 +183,10 @@ priv_init(char *conf, int numeric, int lockfd, int nullfd, char *argv[]) close(pfd[PFD_CTLSOCK].fd); if (pfd[PFD_CTLCONN].fd != -1) close(pfd[PFD_CTLCONN].fd); - if (pfd[PFD_KLOG].fd) + if (pfd[PFD_KLOG].fd != -1) close(pfd[PFD_KLOG].fd); + if (pfd[PFD_SENDSYS].fd != -1) + close(pfd[PFD_SENDSYS].fd); /* Save the config file specified by the child process */ if (strlcpy(config_file, conf, sizeof config_file) >= sizeof(config_file)) diff --git a/usr.sbin/syslogd/syslogd.8 b/usr.sbin/syslogd/syslogd.8 index abca8ffc809..053826caacd 100644 --- a/usr.sbin/syslogd/syslogd.8 +++ b/usr.sbin/syslogd/syslogd.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: syslogd.8,v 1.30 2014/08/25 20:25:46 bluhm Exp $ +.\" $OpenBSD: syslogd.8,v 1.31 2014/09/08 00:43:42 doug Exp $ .\" .\" Copyright (c) 1983, 1986, 1991, 1993 .\" The Regents of the University of California. All rights reserved. @@ -30,7 +30,7 @@ .\" from: @(#)syslogd.8 8.1 (Berkeley) 6/6/93 .\" $NetBSD: syslogd.8,v 1.3 1996/01/02 17:41:48 perry Exp $ .\" -.Dd $Mdocdate: August 25 2014 $ +.Dd $Mdocdate: September 8 2014 $ .Dt SYSLOGD 8 .Os .Sh NAME @@ -66,7 +66,7 @@ to use IPv6 addresses only. Specify a location where .Nm should place an additional log socket. -Up to about 20 additional logging sockets can be specified. +Up to 20 additional logging sockets can be specified. The primary use for this is to place additional log sockets in .Pa /dev/log of various chroot filespaces, though the need for these is diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c index 2ae23c06faf..82684790348 100644 --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: syslogd.c,v 1.122 2014/09/04 15:19:05 bluhm Exp $ */ +/* $OpenBSD: syslogd.c,v 1.123 2014/09/08 00:43:42 doug Exp $ */ /* * Copyright (c) 1983, 1988, 1993, 1994 @@ -453,13 +453,12 @@ main(int argc, char *argv[]) pfd[PFD_UNIX_0 + i].events = POLLIN; } - nfunix++; if (socketpair(AF_UNIX, SOCK_DGRAM, PF_UNSPEC, pair) == -1) die(0); fd = pair[0]; double_rbuf(fd); - pfd[PFD_UNIX_0 + i].fd = fd; - pfd[PFD_UNIX_0 + i].events = POLLIN; + pfd[PFD_SENDSYS].fd = fd; + pfd[PFD_SENDSYS].events = POLLIN; if (ctlsock_path != NULL) { fd = unix_socket(ctlsock_path, SOCK_STREAM, 0600); @@ -608,6 +607,8 @@ main(int argc, char *argv[]) unix_read_handler(pfd[PFD_UNIX_0 + i].fd); } } + if ((pfd[PFD_SENDSYS].revents & POLLIN) != 0) + unix_read_handler(pfd[PFD_SENDSYS].fd); } /* NOTREACHED */ return (0); diff --git a/usr.sbin/syslogd/syslogd.h b/usr.sbin/syslogd/syslogd.h index 201d220bb04..63a2e03c678 100644 --- a/usr.sbin/syslogd/syslogd.h +++ b/usr.sbin/syslogd/syslogd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: syslogd.h,v 1.12 2014/08/25 18:19:18 bluhm Exp $ */ +/* $OpenBSD: syslogd.h,v 1.13 2014/09/08 00:43:42 doug Exp $ */ /* * Copyright (c) 2003 Anil Madhavapeddy <anil@recoil.org> @@ -54,7 +54,8 @@ extern int Startup; #define PFD_CTLSOCK 2 /* Offset of control socket entry */ #define PFD_CTLCONN 3 /* Offset of control connection entry */ #define PFD_INET6 4 /* Offset of inet6 socket entry */ -#define PFD_UNIX_0 5 /* Start of Unix socket entries */ +#define PFD_SENDSYS 5 /* Offset of sendsyslog(2) entry */ +#define PFD_UNIX_0 6 /* Start of Unix socket entries */ #define N_PFD (PFD_UNIX_0 + MAXFUNIX) /* # of pollfd entries */ extern struct pollfd pfd[N_PFD]; |