Skip to content
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

gh-127165: Disallow embedded NULL characters in _interpreters #127199

Merged
merged 2 commits into from
Dec 1, 2024

Conversation

ZeroIntensity
Copy link
Member

@ZeroIntensity ZeroIntensity commented Nov 23, 2024

Currently, null characters in shared namespaces cause truncation of the actual string, because it's eventually passed to PyUnicode_FromString, which uses the strlen instead of the actual size. Then, things break because the string unexpectedly is not in the namespace dictionary. This fixes that by just raising if we find an embedded NULL character in _copy_string_obj_raw.

We could support embedded NULLs by storing the size alongside the name, but this is much simpler (and in practice, nobody is trying to name variables containing \x00).

Python/crossinterp.c Outdated Show resolved Hide resolved
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
@kumaraditya303 kumaraditya303 enabled auto-merge (squash) December 1, 2024 06:33
@kumaraditya303 kumaraditya303 merged commit 46bfd26 into python:main Dec 1, 2024
42 checks passed
@miss-islington-app
Copy link

Thanks @ZeroIntensity for the PR, and @kumaraditya303 for merging it 🌮🎉.. I'm working now to backport this PR to: 3.13.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Dec 1, 2024
…pythonGH-127199)

(cherry picked from commit 46bfd26)

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
@bedevere-app
Copy link

bedevere-app bot commented Dec 1, 2024

GH-127463 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 Dec 1, 2024
kumaraditya303 pushed a commit that referenced this pull request Dec 1, 2024
GH-127199) (#127463)

gh-127165: Disallow embedded NULL characters in `_interpreters` (GH-127199)
(cherry picked from commit 46bfd26)

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
picnixz pushed a commit to picnixz/cpython that referenced this pull request Dec 2, 2024
@ZeroIntensity ZeroIntensity deleted the fix-interp-null-checks branch December 2, 2024 21:54
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.

3 participants