[3.8] bpo-35883: Py_DecodeLocale() escapes invalid Unicode characters (GH-24843)#24906
Merged
Merged
Conversation
…onGH-24843) Python no longer fails at startup with a fatal error if a command line argument contains an invalid Unicode character. The Py_DecodeLocale() function now escapes byte sequences which would be decoded as Unicode characters outside the [U+0000; U+10ffff] range. Use MAX_UNICODE constant in unicodeobject.c. (cherry picked from commit 9976834) Co-authored-by: Victor Stinner <vstinner@python.org>
Contributor
Author
|
@vstinner: Status check is done, and it's a success ✅ . |
pull Bot
pushed a commit
to Mu-L/bup
that referenced
this pull request
Jul 2, 2026
This should allow us to drop our custom argv (bytes) handling since the underlying issue https://sourceware.org/bugzilla/show_bug.cgi?id=2373 appears to have been fixed upstream and then backported all the way to 3.8: 614e836f6e934854c6bbf698d759e5cde607a629 bpo-35883: Py_DecodeLocale() escapes invalid Unicode characters (GH-24843) python/cpython#24906 We can also count on having Py_BytesMain, and gain access to assignment expressions and positional-only parameters. Version 3.8's been available since 2019, and 3.7 is well past its upstream EOL. Signed-off-by: Rob Browning <rlb@defaultvalue.org> Tested-by: Rob Browning <rlb@defaultvalue.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Python no longer fails at startup with a fatal error if a command
line argument contains an invalid Unicode character.
The Py_DecodeLocale() function now escapes byte sequences which would
be decoded as Unicode characters outside the [U+0000; U+10ffff]
range.
Use MAX_UNICODE constant in unicodeobject.c.
(cherry picked from commit 9976834)
Co-authored-by: Victor Stinner vstinner@python.org
https://bugs.python.org/issue35883