Applied syslogd fix submitted by Bart Visscher:
authorRobert Griebl <griebl@gmx.de>
Fri, 19 Jul 2002 20:52:21 +0000 (20:52 -0000)
committerRobert Griebl <griebl@gmx.de>
Fri, 19 Jul 2002 20:52:21 +0000 (20:52 -0000)
I am using BB 0.60.2 in a floppy distro, and the syslog (and logger) is
unable to log the "<" char.  This shows up in ppp logfiles.  [...]
#logger "<pcomp>" results in "comp>" arriving at the log.

sysklogd/syslogd.c

index e1e71378c63a2e78e691fde1fe100fc81f7da21b..3c18c507f12455d422ddc5a2969c75d49f0f7644 100644 (file)
@@ -411,14 +411,16 @@ static int serveConnection (int conn)
                int           pri = (LOG_USER | LOG_NOTICE);
                char          line[ BUFSIZE + 1 ];
                unsigned char c;
+               int           gotpri = 0;
 
                char *q = line;
 
                tmpbuf[ n_read - 1 ] = '\0';
 
                while (p && (c = *p) && q < &line[ sizeof (line) - 1 ]) {
-                       if (c == '<') {
+                       if ((c == '<') && !gotpri && isdigit(p[1])) {
                        /* Parse the magic priority number. */
+                               gotpri = 1;
                                pri = 0;
                                while (isdigit (*(++p))) {
                                        pri = 10 * pri + (*p - '0');