* Configure.in update for autoconf 2.5 (Art Haas).
* Be case-insensitive when looking for IMAP responses.
* Fix logout-after-idle-delivery bug (Sunil Shetye).
+* Sunil Shetye's patch to bulletproof end-of-header detection.
fetchmail-6.1.2 (Thu Oct 31 11:41:02 EST 2002), 22135 lines:
#define EMPTYLINE(s) ((s)[0] == '\r' && (s)[1] == '\n' && (s)[2] == '\0')
+static int end_of_header (const char *s)
+/* accept "\r*\n" as EOH in order to be bulletproof against broken survers */
+{
+ while (s[0] == '\r')
+ s++;
+ return (s[0] == '\n' && s[1] == '\0');
+}
+
int readheaders(int sock,
long fetchlen,
long reallen,
}
/* check for end of headers */
- if (EMPTYLINE(line))
+ if (end_of_header(line))
{
headers_ok = TRUE;
has_nuls = (linelen != strlen(line));
*/
if (!isspace(line[0]) && !strchr(line, ':'))
{
- headers_ok = FALSE;
- has_nuls = (linelen != strlen(line));
- free(line);
- goto process_headers;
+ /* the headers_ok flag cannot be set to FALSE here as the
+ * delimiter has not occurred yet. */
+ if (outlevel > O_SILENT)
+ report(stdout,
+ GT_("incorrect header line found while scanning headers\n"));
+ retain_mail = 1;
}
/* check for RFC822 continuations */