diff options
Diffstat (limited to 'usr.sbin/sendmail/src/err.c')
-rw-r--r-- | usr.sbin/sendmail/src/err.c | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/usr.sbin/sendmail/src/err.c b/usr.sbin/sendmail/src/err.c index 241a486..c231ef1 100644 --- a/usr.sbin/sendmail/src/err.c +++ b/usr.sbin/sendmail/src/err.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)err.c 8.42 (Berkeley) 11/29/95"; +static char sccsid[] = "@(#)err.c 8.42.1.2 (Berkeley) 9/16/96"; #endif /* not lint */ # include "sendmail.h" @@ -137,7 +137,7 @@ syserr(fmt, va_alist) else { uname = ubuf; - sprintf(ubuf, "UID%d", getuid()); + snprintf(ubuf, sizeof ubuf, "UID%d", getuid()); } if (LogLevel > 0) @@ -218,7 +218,7 @@ usrerr(fmt, va_alist) { char buf[MAXLINE]; - sprintf(buf, "Postmaster warning: %.*s", + snprintf(buf, sizeof buf, "Postmaster warning: %.*s", sizeof buf - 22, MsgBuf + 4); CurEnv->e_message = newstr(buf); } @@ -394,7 +394,7 @@ putoutmsg(msg, holdmsg, heldmsg) { /* save for possible future display */ msg[0] = msgcode; - strcpy(HeldMessageBuf, msg); + snprintf(HeldMessageBuf, sizeof HeldMessageBuf, "%s", msg); return; } @@ -511,7 +511,7 @@ fmtmsg(eb, to, num, eno, fmt, ap) del = '-'; else del = ' '; - (void) sprintf(eb, "%3.3s%c", num, del); + (void) snprintf(eb, spaceleft, "%3.3s%c", num, del); eb += 4; spaceleft -= 4; @@ -600,6 +600,7 @@ errstring(errnum) int errnum; { char *dnsmsg; + char *bp; static char buf[MAXLINE]; # ifndef ERRLIST_PREDEFINED extern char *sys_errlist[]; @@ -621,30 +622,33 @@ errstring(errnum) # if defined(DAEMON) && defined(ETIMEDOUT) case ETIMEDOUT: case ECONNRESET: - (void) strcpy(buf, sys_errlist[errnum]); + bp = buf; + snprintf(bp, SPACELEFT(buf, bp), "%s", sys_errlist[errnum]); + bp += strlen(buf); if (SmtpPhase != NULL) { - (void) strcat(buf, " during "); - (void) strcat(buf, SmtpPhase); + snprintf(bp, SPACELEFT(buf, bp), " during %s", + SmtpPhase); + bp += strlen(bp); } if (CurHostName != NULL) { - (void) strcat(buf, " with "); - (void) strcat(buf, CurHostName); + snprintf(bp, SPACELEFT(buf, bp), " with %s", + shortenstring(CurHostName, 203)); } return (buf); case EHOSTDOWN: if (CurHostName == NULL) break; - (void) sprintf(buf, "Host %s is down", + (void) snprintf(buf, sizeof buf, "Host %s is down", shortenstring(CurHostName, 203)); return (buf); case ECONNREFUSED: if (CurHostName == NULL) break; - (void) sprintf(buf, "Connection refused by %s", + (void) snprintf(buf, sizeof buf, "Connection refused by %s", shortenstring(CurHostName, 203)); return (buf); # endif @@ -677,19 +681,22 @@ errstring(errnum) if (dnsmsg != NULL) { - (void) strcpy(buf, "Name server: "); + bp = buf; + strcpy(bp, "Name server: "); + bp += strlen(bp); if (CurHostName != NULL) { - (void) strcat(buf, CurHostName); - (void) strcat(buf, ": "); + snprintf(bp, SPACELEFT(buf, bp), "%s: ", + shortenstring(CurHostName, 203)); + bp += strlen(bp); } - (void) strcat(buf, dnsmsg); + snprintf(bp, SPACELEFT(buf, bp), "%s", dnsmsg); return buf; } if (errnum > 0 && errnum < sys_nerr) return (sys_errlist[errnum]); - (void) sprintf(buf, "Error %d", errnum); + (void) snprintf(buf, sizeof buf, "Error %d", errnum); return (buf); } |