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++) {
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to