Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Feb 2003 13:08:24 -0800
From:      Alfred Perlstein <bright@mu.org>
To:        current@freebsd.org
Subject:   syslog bug
Message-ID:  <20030208210824.GK88781@elvis.mu.org>

next in thread | raw e-mail | index | archive | help
syslog(3) botches things if you pass it a string that has "%%m" in it.
this should fix it, any comments?

Index: syslog.c
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/syslog.c,v
retrieving revision 1.28
diff -u -r1.28 syslog.c
--- syslog.c	14 Nov 2002 12:40:14 -0000	1.28
+++ syslog.c	8 Feb 2003 21:08:09 -0000
@@ -190,12 +190,18 @@
 		}
 
 		/* Substitute error message for %m. */
-		for ( ; (ch = *fmt); ++fmt)
+		for ( ; (ch = *fmt); ++fmt) {
 			if (ch == '%' && fmt[1] == 'm') {
 				++fmt;
 				fputs(strerror(saved_errno), fmt_fp);
-			} else
+			} else if (ch == '%' && fmt[1] == '%') {
+				++fmt;
+				fputc(ch, fmt_fp);
+				fputc(ch, fmt_fp);
+			} else {
 				fputc(ch, fmt_fp);
+			}
+		}
 
 		/* Null terminate if room */
 		fputc(0, fmt_fp);


-- 
-Alfred Perlstein [alfred@freebsd.org]
'Instead of asking why a piece of software is using "1970s technology,"
 start asking why software is ignoring 30 years of accumulated wisdom.'

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030208210824.GK88781>