Skip to content

gh-134152: Fix UnboundLocalError in email._header_value_parser _get_ptext_to_endchars #134233

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 25, 2025

Conversation

bitdancer
Copy link
Member

@bitdancer bitdancer commented May 19, 2025

Fix an UnboundLocalError that can occur when parsing certain delimited constructs in headers (domain literals, quoted strings, comments). After the fix the _get_ptext_to_endchars returns an empty string if there is no content after the opening delimiter. The calling code is responsible for handling the lack of the trailing delimiter, which it already does; this edge case was the header ending immediately after the opening delimiter.

bitdancer added 3 commits May 19, 2025 10:36
Most of these tests currently pass, where the content is simply empty.
Three of them fail, where none of the ending delimiters are found.
@bitdancer bitdancer merged commit a32ea45 into python:main May 25, 2025
43 checks passed
@bitdancer bitdancer added awaiting merge needs backport to 3.13 bugs and security fixes needs backport to 3.14 bugs and security fixes labels May 25, 2025
@miss-islington-app
Copy link

Thanks @bitdancer for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13.
🐍🍒⛏🤖 I'm not a witch! I'm not a witch!

@miss-islington-app
Copy link

Thanks @bitdancer for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request May 25, 2025
…_get_ptext_to_endchars (pythonGH-134233)

Fix an UnboundLocalError that can occur when parsing certain delimited constructs in headers (domain literals, quoted strings, comments). After the fix the _get_ptext_to_endchars returns an empty string if there is no content after the opening delimiter. The calling code is responsible for handling the lack of the trailing delimiter, which it already does; this edge case was the header ending immediately after the opening delimiter.
(cherry picked from commit a32ea45)

Co-authored-by: R. David Murray <rdmurray@bitdance.com>
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request May 25, 2025
…_get_ptext_to_endchars (pythonGH-134233)

Fix an UnboundLocalError that can occur when parsing certain delimited constructs in headers (domain literals, quoted strings, comments). After the fix the _get_ptext_to_endchars returns an empty string if there is no content after the opening delimiter. The calling code is responsible for handling the lack of the trailing delimiter, which it already does; this edge case was the header ending immediately after the opening delimiter.
(cherry picked from commit a32ea45)

Co-authored-by: R. David Murray <rdmurray@bitdance.com>
@bedevere-app
Copy link

bedevere-app bot commented May 25, 2025

GH-134677 is a backport of this pull request to the 3.13 branch.

@bedevere-app bedevere-app bot removed the needs backport to 3.13 bugs and security fixes label May 25, 2025
@bedevere-app
Copy link

bedevere-app bot commented May 25, 2025

GH-134678 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app bot removed the needs backport to 3.14 bugs and security fixes label May 25, 2025
hugovk pushed a commit that referenced this pull request May 26, 2025
… _get_ptext_to_endchars (GH-134233) (#134678)

Co-authored-by: R. David Murray <rdmurray@bitdance.com>
hugovk pushed a commit that referenced this pull request May 26, 2025
… _get_ptext_to_endchars (GH-134233) (#134677)

Co-authored-by: R. David Murray <rdmurray@bitdance.com>
@bitdancer bitdancer deleted the get_ptext_to_endchars_pos_error branch May 26, 2025 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants