[Mailman-Developers] [Fwd: URGENT: Something in message is breaking mailman!]

Barry A. Warsaw barry@digicool.com
Tue, 20 Feb 2001 18:23:52 -0500


>>>>> "KA" == Kambiz Aghaiepour <kambiz@colltech.com> writes:

    KA> Actually, I've been able to track this down to a problem in
    KA> the python library mimetools.py.  The message that causes
    KA> problems has a header as such:

    | Content-Type: multipart/report; report-type=delivery-status
    |         boundary="-------=_2EF51FF1.3FFF45E0"


    KA> And if you notice, the report-type value is not terminated
    KA> with a ';' character. As a result, the value gets set to:

I'd call this a bug in the Netscape.py bounce detector, not in
mimetools.py.  The reason is that your message is not compliant with
the MIME RFC 1341, which requires the semi-colon separator between
parameters.  It is correct that rfc822.Message.getparam('boundary')
returns None in this case.

What's broken is that Netscape.py should make sure the boundary is not
None before it tries to use pass it to mimetools.

Here's a patch against Mailman 2.0.1.
-Barry

-------------------- snip snip --------------------
Index: Netscape.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/Bouncers/Netscape.py,v
retrieving revision 1.5
diff -u -r1.5 Netscape.py
--- Netscape.py	2000/06/20 05:40:36	1.5
+++ Netscape.py	2001/02/20 23:23:06
@@ -51,6 +51,8 @@
     if msg.getmaintype() <> 'multipart':
         return None
     boundary = msg.getparam('boundary')
+    if boundary is None:
+        return None
     msg.fp.seek(0)
     mfile = multifile.MultiFile(msg.fp)
     mfile.push(boundary)