Handle folder headers with colons correctly. Based on patch from Johannes Berg.
[eoc.git] / eoc.py
diff --git a/eoc.py b/eoc.py
index 16dae19b889ddafb101824f55077caa49420316e..52621bc3b4c73e91c84c66ba88fb8de0d71422ca 100644 (file)
--- a/eoc.py
+++ b/eoc.py
@@ -850,15 +850,23 @@ class MailingList:
                 return mail
         headers = mail[:endpos].split("\n")
         body = mail[endpos:]
+        
+        headers_to_remove = [x.lower() for x in headers_to_remove]
     
         remaining = []
         add_continuation_lines = 0
+
         for header in headers:
-            pos = header.find(":")
-            if pos == -1:
+            if header[0] in [' ','\t']:
+                # this is a continuation line
                 if add_continuation_lines:
                     remaining.append(header)
             else:
+                pos = header.find(":")
+                if pos == -1:
+                    # malformed message, try to remove the junk
+                    add_continuation_lines = 0
+                    continue
                 name = header[:pos].lower()
                 if name in headers_to_remove:
                     add_continuation_lines = 0