[New-bugs-announce] [issue29412] IndexError thrown on email.message.M
Joel Uckelman
report at bugs.python.org
Wed Feb 1 08:53:21 EST 2017
New submission from Joel Uckelman:
Test case:
import email
import email.policy
txt = '''From: juckelman at strozfriedberg.co.uk
To: (Recipient list suppressed)
Date: Thu, 22 Aug 2013 04:13:02 +0000
Subject: ADSF-1082
Hey!
'''
msg = email.message_from_string(txt)
msg.get('to')
msg = email.message_from_string(txt, policy=email.policy.default)
msg.get('to')
The second msg.get() throws an IndexError:
Traceback (most recent call last):
File "test.py", line 16, in <module>
print(msg.get('to')) # throws IndexError
File "/usr/lib64/python3.5/email/message.py", line 472, in get
return self.policy.header_fetch_parse(k, v)
File "/usr/lib64/python3.5/email/policy.py", line 153, in header_fetch_parse
return self.header_factory(name, ''.join(value.splitlines()))
File "/usr/lib64/python3.5/email/headerregistry.py", line 586, in __call__
return self[name](name, value)
File "/usr/lib64/python3.5/email/headerregistry.py", line 197, in __new__
cls.parse(value, kwds)
File "/usr/lib64/python3.5/email/headerregistry.py", line 337, in parse
kwds['parse_tree'] = address_list = cls.value_parser(value)
File "/usr/lib64/python3.5/email/headerregistry.py", line 328, in value_parser
address_list, value = parser.get_address_list(value)
File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2336, in get_address_list
token, value = get_address(value)
File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2313, in get_address
token, value = get_group(value)
File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2269, in get_group
token, value = get_display_name(value)
File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2095, in get_display_name
token, value = get_phrase(value)
File "/usr/lib64/python3.5/email/_header_value_parser.py", line 1770, in get_phrase
token, value = get_word(value)
File "/usr/lib64/python3.5/email/_header_value_parser.py", line 1745, in get_word
if value[0]=='"':
IndexError: string index out of range
The docs say that email.policy.default has raise_on_defect set to False, hence parse errors ought to be reported via EmailMessage.defects, not by throwing an exception.
----------
components: email
messages: 286631
nosy: barry, r.david.murray, uckelman
priority: normal
severity: normal
status: open
title: IndexError thrown on email.message.M
type: behavior
versions: Python 3.5
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue29412>
_______________________________________
More information about the New-bugs-announce
mailing list