diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | driver.c | 21 |
2 files changed, 14 insertions, 8 deletions
@@ -10,6 +10,7 @@ ------------------------------------------------------------------------------ fetchmail-4.5.1 (): * Checkalias option from Enrico Musio <enrico.musio@spaziozerouno.it>. +* Discard Unix From_ lines in headers (copes with Debian bug report #23808. fetchmail-4.5.0bis (Sat Jun 20 10:55:52 EDT 1998): @@ -792,11 +792,15 @@ int num; /* index of message */ /* * This code prevents fetchmail from becoming an accessory after - * the fact to upstream sendmails with the `E' option on. This - * can result in an escaped Unix From_ line at the beginning of - * the headers. If fetchmail just passes it through, the client - * listener may think the message has *no* headers (since the first) - * line it sees doesn't look RFC822-conformant) and fake up a set. + * the fact to upstream sendmails with the `E' option on. It also + * copes with certain brain-dead POP servers (like NT's) that pass + * through Unix from_ lines. + * + * Either of these bugs can result in a non-RFC822 line at the + * beginning of the headers. If fetchmail just passes it + * through, the client listener may think the message has *no* + * headers (since the first) line it sees doesn't look + * RFC822-conformant) and fake up a set. * * What the user would see in this case is bogus (synthesized) * headers, followed by a blank line, followed by the >From, @@ -804,10 +808,10 @@ int num; /* index of message */ * followed by text. * * We forestall this lossage by tossing anything that looks - * like an escaped From_ line in headers. These aren't RFC822 - * so our conscience is clear... + * like an escaped or passed-through From_ line in headers. + * These aren't RFC822 so our conscience is clear... */ - if (!strncasecmp(line, ">From ", 6)) + if (!strncasecmp(line, ">From ", 6) || !strncasecmp(line, "From ", 5)) { free(line); continue; @@ -829,6 +833,7 @@ int num; /* index of message */ */ { char *cp; + if (!strncasecmp(line, "Status:", 7)) cp = line + 7; else if (!strncasecmp(line, "X-Mozilla-Status:", 17)) |