When reading in SMTP recipients, use safestrncpy() instead
authorArt Cancro <ajc@citadel.org>
Fri, 29 Jun 2007 05:01:56 +0000 (05:01 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 29 Jun 2007 05:01:56 +0000 (05:01 +0000)
of strcpy() to load the address conversion buffer.

citadel/serv_smtp.c

index a9e46f681b92a7e8a0fe79cb38c19fb58a382116..df1e560054c8fb03ec4938647dfeb16cdc76deb5 100644 (file)
@@ -549,7 +549,7 @@ void smtp_mail(char *argbuf) {
  * Implements the "RCPT To:" command
  */
 void smtp_rcpt(char *argbuf) {
-       char recp[SIZ];
+       char recp[1024];
        char message_to_spammer[SIZ];
        struct recptypes *valid = NULL;
 
@@ -570,7 +570,7 @@ void smtp_rcpt(char *argbuf) {
                return;
        }
 
-       strcpy(recp, &argbuf[3]);
+       safestrncpy(recp, &argbuf[3], sizeof recp);
        striplt(recp);
        stripallbut(recp, '<', '>');
 
@@ -623,8 +623,9 @@ void smtp_rcpt(char *argbuf) {
        }
        strcat(SMTP->recipients, recp);
        SMTP->number_of_recipients += 1;
-       if (valid != NULL) 
+       if (valid != NULL)  {
                free_recipients(valid);
+       }
 }