[terada@crock 060809]$ diff -u spamc/libspamc.c.save spamc/libspamc.c --- spamc/libspamc.c.save 2006-07-26 07:02:19.000000000 +0900 +++ spamc/libspamc.c 2006-08-09 18:56:35.000000000 +0900 @@ -1639,23 +1639,30 @@ va_list ap; char buf[LOG_BUFSIZ+1]; int len = 0; + char *spamc_buf="spamc: "; va_start(ap, msg); if ((flags & SPAMC_LOG_TO_STDERR) != 0) { /* create a log-line buffer */ - len = snprintf(buf, LOG_BUFSIZ, "spamc: "); - len += vsnprintf(buf+len, LOG_BUFSIZ-len, msg, ap); +/* len = snprintf(buf, LOG_BUFSIZ, "spamc: "); + len += vsnprintf(buf+len, LOG_BUFSIZ-len, msg, ap); */ + sprintf(buf, "%s", spamc_buf); len = strlen(spamc_buf); + if(strlen(msg)>LOG_BUFSIZ-len) msg[LOG_BUFSIZ-len-1]='\0'; + sprintf(buf+len, "%s", msg); len+= strlen(msg); /* avoid buffer overflow */ if (len > (LOG_BUFSIZ-2)) { len = (LOG_BUFSIZ-3); } +/* len += snprintf(buf+len, LOG_BUFSIZ-len, "\n"); */ + sprintf(buf+len, "\n"); len += 1; - len += snprintf(buf+len, LOG_BUFSIZ-len, "\n"); buf[LOG_BUFSIZ] = '\0'; /* ensure termination */ (void) write (2, buf, len); } else { - vsnprintf(buf, LOG_BUFSIZ, msg, ap); +/* vsnprintf(buf, LOG_BUFSIZ, msg, ap); */ + if(strlen(msg)>LOG_BUFSIZ) msg[LOG_BUFSIZ-1]='\0'; + sprintf(buf, "%s", msg); buf[LOG_BUFSIZ] = '\0'; /* ensure termination */ #ifndef _WIN32 syslog (level, "%s", buf);