[3.11] gh-119506: fix _io.TextIOWrapper.write() write during flush (#119507) #120314
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.
This PR is backport of #119507
This PR fixes TextIOWrapper's inner buffer breakage.
The bug caused assertion error when Python debug build.
I am not sure it can cause crash on release build. The bug will cause:
Since this bug is not verified to cause crash (and DoS) in release build, I am not sure this PR is merged into security fix branches.
But this bug can cause serious bug (data lost/breakage). So I created this PR before details went away from my head.
_io.TextIOWrapper.write
: write during flush causespending_bytes
length mismatch #119506