Skip to content

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

Merged
kumaraditya303 merged 2 commits into
python:mainfrom
ZeroIntensity:fix-interp-null-checks
Dec 1, 2024
Merged

gh-127165: Disallow embedded NULL characters in _interpreters#127199
kumaraditya303 merged 2 commits into
python:mainfrom
ZeroIntensity:fix-interp-null-checks

Conversation

@ZeroIntensity

@ZeroIntensity ZeroIntensity commented Nov 23, 2024

Copy link
Copy Markdown
Member

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).

Comment thread Python/crossinterp.c Outdated
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
@miss-islington-app

Copy link
Copy Markdown

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

bedevere-app Bot commented Dec 1, 2024

Copy link
Copy Markdown

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
srinivasreddy pushed a commit to srinivasreddy/cpython that referenced this pull request Jan 8, 2025
ebonnal pushed a commit to ebonnal/cpython that referenced this pull request Jan 12, 2025
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