diff options
Diffstat (limited to 'mail/popper/files/patch-ag')
| -rw-r--r-- | mail/popper/files/patch-ag | 52 |
1 files changed, 1 insertions, 51 deletions
diff --git a/mail/popper/files/patch-ag b/mail/popper/files/patch-ag index c40dc5299c11..bf573ea7937a 100644 --- a/mail/popper/files/patch-ag +++ b/mail/popper/files/patch-ag @@ -16,54 +16,4 @@ ((int *)ap)[3],((int *)ap)[4],((int *)ap)[5]); # endif va_end(ap); ---- pop_msg.c.orig Wed Nov 19 13:20:38 1997 -+++ pop_msg.c Sun Jun 28 01:35:05 1998 -@@ -27,6 +27,7 @@ - { - POP * p; - int stat; /* POP status indicator */ -+ int l, len; /* remaining buffer length */ - char * format; /* Format string for the message */ - va_list ap; - register char * mp; -@@ -50,6 +51,7 @@ - - /* Point to the message buffer */ - mp = message; -+ len = sizeof(message); - - /* Format the POP status code at the beginning of the message */ - if (stat == POP_SUCCESS) -@@ -58,17 +60,18 @@ - (void)sprintf (mp,"%s ",POP_ERR); - - /* Point past the POP status indicator in the message message */ -- mp += strlen(mp); -+ l = strlen(mp); -+ len -= l, mp += l; - - /* Append the message (formatted, if necessary) */ - if (format) - #ifdef HAVE_VPRINTF -- vsprintf(mp,format,ap); -+ vsnprintf(mp,len,format,ap); - #else - # ifdef PYRAMID -- (void)sprintf(mp,format, arg1, arg2, arg3, arg4, arg5, arg6); -+ (void)snprintf(mp,len,format, arg1, arg2, arg3, arg4, arg5, arg6); - # else -- (void)sprintf(mp,format,((int *)ap)[0],((int *)ap)[1],((int *)ap)[2], -+ (void)snprintf(mp,len,format,((int *)ap)[0],((int *)ap)[1],((int *)ap)[2], - ((int *)ap)[3],((int *)ap)[4]); - # endif - #endif -@@ -87,7 +90,8 @@ - (p->user ? p->user : "(null)"), p->client, message); - - /* Append the <CR><LF> */ -- (void)strcat(message, "\r\n"); -+ len -= strlen(message); -+ (void)strncat(message, "\r\n", len); - - /* Send the message to the client */ - (void)fputs(message,p->output); + |
