summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-05-28 13:39:05 -0700
committerJunio C Hamano <junkio@cox.net>2006-05-28 13:39:05 -0700
commitd177e584255aad351bbbff14aba8e73afc008c75 (patch)
tree51ee631d0d4c908842396d0af0505bc5e74a345b
parent51937e533a39078a6d440b8a0b89bb491061c80b (diff)
parent81c5cf786581c82a8834726ffef26b7def96bf35 (diff)
downloadgit-d177e584255aad351bbbff14aba8e73afc008c75.tar.gz
Merge branch 'jc/mailinfo'
* jc/mailinfo: mailinfo: skip bogus UNIX From line inside body
-rw-r--r--mailinfo.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/mailinfo.c b/mailinfo.c
index 88f9fbb198..5b6c2157ed 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -240,11 +240,18 @@ static int eatspace(char *line)
#define SEEN_FROM 01
#define SEEN_DATE 02
#define SEEN_SUBJECT 04
-#define SEEN_PREFIX 0x08
+#define SEEN_BOGUS_UNIX_FROM 010
+#define SEEN_PREFIX 020
/* First lines of body can have From:, Date:, and Subject: */
static void handle_inbody_header(int *seen, char *line)
{
+ if (!memcmp(">From", line, 5) && isspace(line[5])) {
+ if (!(*seen & SEEN_BOGUS_UNIX_FROM)) {
+ *seen |= SEEN_BOGUS_UNIX_FROM;
+ return;
+ }
+ }
if (!memcmp("From:", line, 5) && isspace(line[5])) {
if (!(*seen & SEEN_FROM) && handle_from(line+6)) {
*seen |= SEEN_FROM;