]> granicus.if.org Git - neomutt/commitdiff
SMTP: guard against short server responses
authorBrendan Cully <brendan@kublai.com>
Fri, 2 Jan 2009 00:55:32 +0000 (16:55 -0800)
committerBrendan Cully <brendan@kublai.com>
Fri, 2 Jan 2009 00:55:32 +0000 (16:55 -0800)
smtp.c

diff --git a/smtp.c b/smtp.c
index 0dae118be7df36c1df9697fa25684add13980c37..391eb0d306f0e33886708b3932b645ad907e3c18 100644 (file)
--- a/smtp.c
+++ b/smtp.c
@@ -89,9 +89,10 @@ smtp_get_resp (CONNECTION * conn)
 
   do {
     n = mutt_socket_readln (buf, sizeof (buf), conn);
-    if (n == -1)
+    if (n < 4) {
+      /* read error, or no response code */
       return smtp_err_read;
-    n = atoi (buf);
+    }
 
     if (!ascii_strncasecmp ("8BITMIME", buf + 4, 8))
       mutt_bit_set (Capabilities, EIGHTBITMIME);
@@ -105,6 +106,8 @@ smtp_get_resp (CONNECTION * conn)
       mutt_bit_set (Capabilities, DSN);
     else if (!ascii_strncasecmp ("STARTTLS", buf + 4, 8))
       mutt_bit_set (Capabilities, STARTTLS);
+
+    n = atoi (buf);
   } while (buf[3] == '-');
 
   if (smtp_success (n) || n == smtp_continue)