Skip to content

[3.8] bpo-35883: Py_DecodeLocale() escapes invalid Unicode characters (GH-24843)#24906

Merged
vstinner merged 1 commit into
python:3.8from
miss-islington:backport-9976834-3.8
Mar 29, 2021
Merged

[3.8] bpo-35883: Py_DecodeLocale() escapes invalid Unicode characters (GH-24843)#24906
vstinner merged 1 commit into
python:3.8from
miss-islington:backport-9976834-3.8

Conversation

@miss-islington

@miss-islington miss-islington commented Mar 17, 2021

Copy link
Copy Markdown
Contributor

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

…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>
@miss-islington

Copy link
Copy Markdown
Contributor Author

@vstinner: Status check is done, and it's a success ✅ .

@vstinner vstinner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, good bot.

@vstinner vstinner merged commit 3b6e61e into python:3.8 Mar 29, 2021
@miss-islington miss-islington deleted the backport-9976834-3.8 branch March 29, 2021 19:36
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants