svn commit: r310349 - head/usr.sbin/syslogd
Hiroki Sato
hrs at FreeBSD.org
Wed Dec 21 05:46:00 UTC 2016
Author: hrs
Date: Wed Dec 21 05:45:59 2016
New Revision: 310349
URL: https://svnweb.freebsd.org/changeset/base/310349
Log:
- Use fnmatch(3) for domanname matching of -a options.
- Document the patten matching.
- Document -S flag in SYNOPSIS.
Modified:
head/usr.sbin/syslogd/syslogd.8
head/usr.sbin/syslogd/syslogd.c
Modified: head/usr.sbin/syslogd/syslogd.8
==============================================================================
--- head/usr.sbin/syslogd/syslogd.8 Wed Dec 21 03:23:35 2016 (r310348)
+++ head/usr.sbin/syslogd/syslogd.8 Wed Dec 21 05:45:59 2016 (r310349)
@@ -28,7 +28,7 @@
.\" @(#)syslogd.8 8.1 (Berkeley) 6/6/93
.\" $FreeBSD$
.\"
-.Dd June 16, 2015
+.Dd December 21, 2016
.Dt SYSLOGD 8
.Os
.Sh NAME
@@ -44,6 +44,7 @@
.Op Fl m Ar mark_interval
.Op Fl P Ar pid_file
.Op Fl p Ar log_socket
+.Op Fl S Ar logpriv_socket
.Sh DESCRIPTION
The
.Nm
@@ -154,16 +155,9 @@ for the sender address.
The meaning of
.Ar service
is as explained above.
-.It Xo
-.Sm off
-.No * Ar domainname Op \&: Ar service
-.Sm on
-.Xc
-Same as before, except that any source host whose name
-.Em ends
-in
.Ar domainname
-will get permission.
+can contain special characters of a shell-style pattern such as
+.Ql Li \&* .
.El
.Pp
The
Modified: head/usr.sbin/syslogd/syslogd.c
==============================================================================
--- head/usr.sbin/syslogd/syslogd.c Wed Dec 21 03:23:35 2016 (r310348)
+++ head/usr.sbin/syslogd/syslogd.c Wed Dec 21 05:45:59 2016 (r310349)
@@ -98,6 +98,7 @@ __FBSDID("$FreeBSD$");
#include <err.h>
#include <errno.h>
#include <fcntl.h>
+#include <fnmatch.h>
#include <libutil.h>
#include <limits.h>
#include <paths.h>
@@ -2476,8 +2477,7 @@ static int
validate(struct sockaddr *sa, const char *hname)
{
int i;
- size_t l1, l2;
- char *cp, name[NI_MAXHOST], ip[NI_MAXHOST], port[NI_MAXSERV];
+ char name[NI_MAXHOST], ip[NI_MAXHOST], port[NI_MAXSERV];
struct allowedpeer *ap;
struct sockaddr_in *sin4, *a4p = NULL, *m4p = NULL;
#ifdef INET6
@@ -2558,23 +2558,11 @@ validate(struct sockaddr *sa, const char
else
continue;
} else {
- cp = ap->a_name;
- l1 = strlen(name);
- if (*cp == '*') {
- /* allow wildmatch */
- cp++;
- l2 = strlen(cp);
- if (l2 > l1 || memcmp(cp, &name[l1 - l2], l2) != 0) {
- dprintf("rejected in rule %d due to name mismatch.\n", i);
- continue;
- }
- } else {
- /* exact match */
- l2 = strlen(cp);
- if (l2 != l1 || memcmp(cp, name, l1) != 0) {
- dprintf("rejected in rule %d due to name mismatch.\n", i);
- continue;
- }
+ if (fnmatch(ap->a_name, name, FNM_NOESCAPE) ==
+ FNM_NOMATCH) {
+ dprintf("rejected in rule %d due to name "
+ "mismatch.\n", i);
+ continue;
}
}
dprintf("accepted in rule %d.\n", i);
More information about the svn-src-all
mailing list