summaryrefslogtreecommitdiff
path: root/usr.sbin/syslogd/syslogd.c
diff options
context:
space:
mode:
authorMarkus Friedl <markus@cvs.openbsd.org>2005-03-12 08:05:59 +0000
committerMarkus Friedl <markus@cvs.openbsd.org>2005-03-12 08:05:59 +0000
commit52b799145a4f69f76ecf5a6826e61ad5f3440e13 (patch)
tree55f157cf683c29514ac263cbcb9c6d4a048eb1a8 /usr.sbin/syslogd/syslogd.c
parent2f1f80ed1724662da15a73eb29a6ecbbb53eeee1 (diff)
shutdown the inetd socket for reading if secure; ok deraadt
Diffstat (limited to 'usr.sbin/syslogd/syslogd.c')
-rw-r--r--usr.sbin/syslogd/syslogd.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index 8c7e01c92e7..9bfd9be800f 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: syslogd.c,v 1.88 2004/12/22 17:42:00 danh Exp $ */
+/* $OpenBSD: syslogd.c,v 1.89 2005/03/12 08:05:58 markus Exp $ */
/*
* Copyright (c) 1983, 1988, 1993, 1994
@@ -39,7 +39,7 @@ static const char copyright[] =
#if 0
static const char sccsid[] = "@(#)syslogd.c 8.3 (Berkeley) 4/4/94";
#else
-static const char rcsid[] = "$OpenBSD: syslogd.c,v 1.88 2004/12/22 17:42:00 danh Exp $";
+static const char rcsid[] = "$OpenBSD: syslogd.c,v 1.89 2005/03/12 08:05:58 markus Exp $";
#endif
#endif /* not lint */
@@ -375,9 +375,13 @@ main(int argc, char *argv[])
die(0);
} else {
InetInuse = 1;
- double_rbuf(fd);
pfd[PFD_INET].fd = fd;
- pfd[PFD_INET].events = POLLIN;
+ if (SecureMode) {
+ shutdown(fd, SHUT_RD);
+ } else {
+ double_rbuf(fd);
+ pfd[PFD_INET].events = POLLIN;
+ }
}
}
@@ -525,18 +529,14 @@ main(int argc, char *argv[])
len = sizeof(frominet);
i = recvfrom(pfd[PFD_INET].fd, line, MAXLINE, 0,
(struct sockaddr *)&frominet, &len);
- if (SecureMode) {
- /* silently drop it */
- } else {
- if (i > 0) {
- line[i] = '\0';
- cvthname(&frominet, resolve,
- sizeof resolve);
- dprintf("cvthname res: %s\n", resolve);
- printline(resolve, line);
- } else if (i < 0 && errno != EINTR)
- logerror("recvfrom inet");
- }
+ if (i > 0) {
+ line[i] = '\0';
+ cvthname(&frominet, resolve,
+ sizeof resolve);
+ dprintf("cvthname res: %s\n", resolve);
+ printline(resolve, line);
+ } else if (i < 0 && errno != EINTR)
+ logerror("recvfrom inet");
}
if ((pfd[PFD_CTLSOCK].revents & POLLIN) != 0)
ctlsock_accept_handler();