svn commit: r325558 - head/usr.sbin/syslogd

Gleb Smirnoff glebius at FreeBSD.org
Wed Nov 8 16:45:54 UTC 2017


Author: glebius
Date: Wed Nov  8 16:45:53 2017
New Revision: 325558
URL: https://svnweb.freebsd.org/changeset/base/325558

Log:
  When parsing UDP messages skip optional hostname as described by
  RFC 3164.
  
  PR:		200933
  Submitted by:	maxim
  Reported by:	Konstantin Pavlov <thresh nginx.com>
  MFC after:	2 weeks

Modified:
  head/usr.sbin/syslogd/syslogd.c

Modified: head/usr.sbin/syslogd/syslogd.c
==============================================================================
--- head/usr.sbin/syslogd/syslogd.c	Wed Nov  8 16:03:58 2017	(r325557)
+++ head/usr.sbin/syslogd/syslogd.c	Wed Nov  8 16:45:53 2017	(r325558)
@@ -1034,7 +1034,7 @@ static void
 logmsg(int pri, const char *msg, const char *from, int flags)
 {
 	struct filed *f;
-	int i, fac, msglen, prilev;
+	int i, j, fac, msglen, prilev;
 	const char *timestamp;
  	char prog[NAME_MAX+1];
 	char buf[MAXLINE+1];
@@ -1076,6 +1076,19 @@ logmsg(int pri, const char *msg, const char *from, int
 		return;
 
 	prilev = LOG_PRI(pri);
+
+	/* skip hostname, see RFC 3164 */
+	for (i = 0, j = 0; i < NAME_MAX; i++) {
+		if (isspace(msg[i])) {
+			j = i + 1;
+		}
+		if (msg[i] == ':')
+			break;
+	}
+	if (j <= msglen) {
+		msg += j;
+		msglen -= j;
+	}
 
 	/* extract program name */
 	for (i = 0; i < NAME_MAX; i++) {


More information about the svn-src-all mailing list