-
-
Notifications
You must be signed in to change notification settings - Fork 33.9k
gh-143007: fix crash .TextIOWrapper.seek with a custom __int__ method detaches #143043
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
Open
yihong0618
wants to merge
6
commits into
python:main
Choose a base branch
from
yihong0618:hy/close_issue_143007
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
f7cc7c4
fix: crash .TextIOWrapper.seek with a custom __int__ method detaches
yihong0618 1eb62a4
fix: crash .TextIOWrapper.seek with a custom __int__ method detaches
yihong0618 af070ea
fix: apply suggestions
yihong0618 6f5c111
Merge branch 'hy/close_issue_143007' of https://github.com/yihong0618…
yihong0618 bb5185d
fix: drop wrong fix
yihong0618 290be4f
fix: lint
yihong0618 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
2 changes: 2 additions & 0 deletions
2
Misc/NEWS.d/next/Library/2025-12-21-21-30-48.gh-issue-143007.EtzUva.rst
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| Fix crash in :meth:`io.TextIOWrapper.seek` when a custom cookie's | ||
| ``__int__`` method detaches the underlying buffer. |
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this isn't the right place to add the check, the
_PyFile_Flushjust before this could result in the same issue, and the cookie's buffer / decoding into it isn't what actually breaks (thebufferin this function is locally allocated, the cookie should be valid the whole time of this function).I think this should do a
CHECK_ATTACHEDlike check just before theres = PyObject_CallMethodOneArg(self->buffer, &_Py_ID(seek), posobj);as that's what is doing theself->bufferusage/call/dereference.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes but it is my first solution
an rethink that we can forget add in the future in other place
CHECK_ATTACHED and check it in the middle of the code is not match its name
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changed back to the first way as you suggestion thank you