Merge branch 'jc/mailinfo'
authorJunio C Hamano <junkio@cox.net>
Sun, 28 May 2006 20:39:05 +0000 (13:39 -0700)
committerJunio C Hamano <junkio@cox.net>
Sun, 28 May 2006 20:39:05 +0000 (13:39 -0700)
* jc/mailinfo:
  mailinfo: skip bogus UNIX From line inside body

1  2 
mailinfo.c

diff --cc mailinfo.c
index 88f9fbb198a7343715fb01c64c72044a7abaedab,a133e6d08aa69a5b19f6f232729b7dd108a630d6..5b6c2157ede415e019099098f2d0dc522b1e7a27
@@@ -240,11 -237,17 +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 int handle_inbody_header(int *seen, char *line)
 +static void handle_inbody_header(int *seen, char *line)
  {
 -                      return 1;
+       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;