[New-bugs-announce] [issue40944] email.message.EmailMessage address parser fails to handle 'example@'

Ivan Savin report at bugs.python.org
Wed Jun 10 15:05:29 EDT 2020


New submission from Ivan Savin <acccko at gmail.com>:

How to reproduce:

>>> import email.message
>>> message = email.message.EmailMessage()
>>> message['From'] = 'hey@'
Traceback (most recent call last):
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1956, in get_address
    token, value = get_group(value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1914, in get_group
    raise errors.HeaderParseError("expected ':' at end of group "
email.errors.HeaderParseError: expected ':' at end of group display name but found '@'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1782, in get_mailbox
    token, value = get_name_addr(value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1768, in get_name_addr
    token, value = get_angle_addr(value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1693, in get_angle_addr
    raise errors.HeaderParseError(
email.errors.HeaderParseError: expected angle-addr but found '@'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/message.py", line 409, in __setitem__
    self._headers.append(self.policy.header_store_parse(name, val))
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/policy.py", line 148, in header_store_parse
    return (name, self.header_factory(name, value))
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/headerregistry.py", line 596, in __call__
    return self[name](name, value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/headerregistry.py", line 191, in __new__
    cls.parse(value, kwds)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/headerregistry.py", line 334, in parse
    kwds['parse_tree'] = address_list = cls.value_parser(value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/headerregistry.py", line 325, in value_parser
    address_list, value = parser.get_address_list(value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1979, in get_address_list
    token, value = get_address(value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1959, in get_address
    token, value = get_mailbox(value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1785, in get_mailbox
    token, value = get_addr_spec(value)
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1638, in get_addr_spec
    token, value = get_domain(value[1:])
  File "/home/ivan/.pyenv/versions/3.9.0a5/lib/python3.9/email/_header_value_parser.py", line 1595, in get_domain
    if value[0] in CFWS_LEADER:
IndexError: string index out of range

----------
components: email
messages: 371234
nosy: Ivan Savin, barry, r.david.murray
priority: normal
severity: normal
status: open
title: email.message.EmailMessage address parser fails to handle 'example@'
type: behavior
versions: Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue40944>
_______________________________________


More information about the New-bugs-announce mailing list