]> granicus.if.org Git - python/commitdiff
SF patch #495358 (Artur Zaprzala): rfc822.AddressList and "<>" address
authorGuido van Rossum <guido@python.org>
Thu, 20 Dec 2001 15:54:48 +0000 (15:54 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 20 Dec 2001 15:54:48 +0000 (15:54 +0000)
    rfc822.AddressList incorrectly handles empty address.
    "<>" is converted to None and should be "".
    AddressList.__str__() fails on None.
    I got an email with such an address and my program
    failed processing it.

    Example:
    >>> import rfc822

    >>> rfc822.AddressList("<>").addresslist
    [('', None)]
    >>> str(rfc822.AddressList("<>"))
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    File "/usr/lib/python2.1/rfc822.py", line 753, in __str__
    return ", ".join(map(dump_address_pair,
    self.addresslist))
    TypeError: sequence item 0: expected string, None found

[His solution: in the internal routine AddrlistClass.getrouteaddr(),
initialize adlist to "".]

Lib/rfc822.py

index 9ad2f8f84f1ccd36b5d1050705d436cb394c4e3c..96ab21c795c1880844c7933d2d488bf50561f1e4 100644 (file)
@@ -624,7 +624,7 @@ class AddrlistClass:
         expectroute = 0
         self.pos = self.pos + 1
         self.gotonext()
-        adlist = None
+        adlist = ""
         while self.pos < len(self.field):
             if expectroute:
                 self.getdomain()