Repository navigation
gh-87720 Fix additional header refolding-quoting edge case - #134271
Conversation
In this case, the higher level syntactic unit fit on the remainder of the line in un-encoded format, so the encoding check never happened. To fix this, we look inside the current unit to see if has anything that was originally encoded.
|
@medmunds Do you feel like reviewing this? :) |
|
medmunds
left a comment
There was a problem hiding this comment.
This fix LGTM. But I found another corner case while looking at it. Here's the failing test:
--- a/Lib/test/test_email/test__header_value_parser.py (revision ebde4e897750963b82bcae785949ac11b3877640)
+++ b/Lib/test/test_email/test__header_value_parser.py (date 1748289921461)
@@ -3101,6 +3101,8 @@
'=?utf-8?q?a=2C?=\n'
' 123456789012345678901234567890123456\n'
' <abc@example.com>\n'),
+ ('abc@example.com (, but definitely not also sent to def@example.net)',
+ 'abc@example.com (, but definitely not\n also sent to def@example.net)\n'),
]
for (to, folded) in cases:
with self.subTest(to=to):(This case belongs in a new test covering comment folding, but you'll get the point. Guessing I should open a new issue—it's more like the earlier quoted-string problem. I bring it up here in case it might help you spot other xtext variations needing attention.)
(Also, is this on Seth's radar yet?)
|
This PR is stale because it has been open for 30 days with no activity. |
medmunds
left a comment
There was a problem hiding this comment.
Still looks good.
This probably should get security backports.
|
Thanks @bitdancer for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11. |
|
Thanks @bitdancer for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12. |
|
Thanks @bitdancer for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13. |
|
Thanks @bitdancer for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14. |
|
Thanks @bitdancer for the PR 🌮🎉.. I'm working now to backport this PR to: 3.15. |
|
GH-159065 is a backport of this pull request to the 3.11 branch. |
|
GH-159066 is a backport of this pull request to the 3.12 branch. |
|
GH-159067 is a backport of this pull request to the 3.14 branch. |
|
GH-159068 is a backport of this pull request to the 3.13 branch. |
|
GH-159069 is a backport of this pull request to the 3.15 branch. |
…-134271) (#159067) In this case, the higher level syntactic unit fit on the remainder of the line in un-encoded format, and that higher level unit was not a ptext or vtext, so the encoding check failed. To fix this, we look inside the current unit to see if has anything that was originally encoded. (cherry picked from commit 5a22a62) Co-authored-by: R. David Murray <rdmurray@bitdance.com>
|
Fixes #87720. |
…-134271) (#159069) In this case, the higher level syntactic unit fit on the remainder of the line in un-encoded format, and that higher level unit was not a ptext or vtext, so the encoding check failed. To fix this, we look inside the current unit to see if has anything that was originally encoded. (cherry picked from commit 5a22a62) Co-authored-by: R. David Murray <rdmurray@bitdance.com>
In this case, the higher level syntactic unit fit on the remainder of the line in un-encoded format, so the encoding check never happened. To fix this, we look inside the current unit to see if has anything that was originally encoded.
I'm not really happy with the method name 'has_token_type', but I haven't thought of anything I like better. Ideas welcome.