Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

UnboundLocalError in email._header_value_parser.parse_message_id #134152

Copy link
Copy link
Open
@gabe-sherman

Description

@gabe-sherman
Issue body actions

During fuzzing of Python standard libraries, the following code snippet causes an UnboundLocalError with the following message: UnboundLocalError: cannot access local variable 'pos' where it is not associated with a value'. This occurs in the _get_ptext_to_endchars function at line 1035 in email/_header_value_parser.py.

import email._header_value_parser
email._header_value_parser.parse_message_id("<T@[")

Exception Trace

Traceback (most recent call last):
  File "/usr/lib/python3.12/email/_header_value_parser.py", line 2118, in get_msg_id
    token, value = get_dot_atom_text(value)
                   ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/email/_header_value_parser.py", line 1344, in get_dot_atom_text
    raise errors.HeaderParseError("expected atom at a start of "
email.errors.HeaderParseError: expected atom at a start of dot-atom-text but found '['

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "rep.py", line 2, in <module>
    email._header_value_parser.parse_message_id("<T@[")
  File "/usr/lib/python3.12/email/_header_value_parser.py", line 2149, in parse_message_id
    token, value = get_msg_id(value)
                   ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/email/_header_value_parser.py", line 2121, in get_msg_id
    token, value = get_no_fold_literal(value)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/email/_header_value_parser.py", line 2066, in get_no_fold_literal
    token, value = get_dtext(value)
                   ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/email/_header_value_parser.py", line 1557, in get_dtext
    ptext, value, had_qp = _get_ptext_to_endchars(value, '[]')
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/email/_header_value_parser.py", line 1033, in _get_ptext_to_endchars
    pos = pos + 1
          ^^^
UnboundLocalError: cannot access local variable 'pos' where it is not associated with a value

CPython versions tested on:

3.12, 3.11, 3.10, 3.9

Operating systems tested on:

Linux

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibPython modules in the Lib dirPython modules in the Lib dirtopic-emailtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.