Date: Tue, 29 Aug 1995 00:49:50 -0700 From: Paul Traina <pst> To: security Subject: please code review proposed fix for syslog problem Message-ID: <199508290749.AAA16552@freefall.FreeBSD.org>
next in thread | raw e-mail | index | archive | help
Index: lib/libc/gen/syslog.c =================================================================== RCS file: /home/ncvs/src/lib/libc/gen/syslog.c,v retrieving revision 1.2 diff -c -r1.2 syslog.c *** 1.2 1995/05/02 17:46:30 --- syslog.c 1995/08/29 07:49:14 *************** *** 101,106 **** --- 101,108 ---- char *stdp, tbuf[2048], fmt_cpy[1024]; #define INTERNALLOG LOG_ERR|LOG_CONS|LOG_PERROR|LOG_PID + #define SPACELEFT(X) (sizeof(tbuf) - ((X) - tbuf)) + /* Check for invalid bits. */ if (pri & ~(LOG_PRIMASK|LOG_FACMASK)) { syslog(INTERNALLOG, *************** *** 120,136 **** /* Build the message. */ (void)time(&now); ! p = tbuf + sprintf(tbuf, "<%d>", pri); ! p += strftime(p, sizeof (tbuf) - (p - tbuf), "%h %e %T ", ! localtime(&now)); if (LogStat & LOG_PERROR) stdp = p; if (LogTag == NULL) LogTag = __progname; if (LogTag != NULL) ! p += sprintf(p, "%s", LogTag); if (LogStat & LOG_PID) ! p += sprintf(p, "[%d]", getpid()); if (LogTag != NULL) { *p++ = ':'; *p++ = ' '; --- 122,137 ---- /* Build the message. */ (void)time(&now); ! p = tbuf + snprintf(tbuf, sizeof(tbuf), "<%d>", pri); ! p += strftime(p, SPACELEFT(p), "%h %e %T ", localtime(&now)); if (LogStat & LOG_PERROR) stdp = p; if (LogTag == NULL) LogTag = __progname; if (LogTag != NULL) ! p += snprintf(p, SPACELEFT(p), "%s", LogTag); if (LogStat & LOG_PID) ! p += snprintf(p, SPACELEFT(p), "[%d]", getpid()); if (LogTag != NULL) { *p++ = ':'; *p++ = ' '; *************** *** 140,151 **** for (t = fmt_cpy; ch = *fmt; ++fmt) if (ch == '%' && fmt[1] == 'm') { ++fmt; ! t += sprintf(t, "%s", strerror(saved_errno)); } else *t++ = ch; *t = '\0'; ! p += vsprintf(p, fmt_cpy, ap); cnt = p - tbuf; /* Output to stderr if requested. */ --- 141,153 ---- for (t = fmt_cpy; ch = *fmt; ++fmt) if (ch == '%' && fmt[1] == 'm') { ++fmt; ! t += snprintf(t, sizeof(fmt_cpy) - (t - fmt_cpy), "%s", ! strerror(saved_errno)); } else *t++ = ch; *t = '\0'; ! p += vsnprintf(p, SPACELEFT(p), fmt_cpy, ap); cnt = p - tbuf; /* Output to stderr if requested. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508290749.AAA16552>