mirror of
https://github.com/python/cpython.git
synced 2026-06-11 04:12:11 +00:00
TextIOWrapper keeps its underlying stream in a member called `self->buffer`. That stream can be detached by user code, such as custom `.flush` implementations resulting in `self->buffer` being set to NULL. The implementation often checked at the start of functions if `self->buffer` is in a good state, but did not always recheck after other Python code was called which could modify `self->buffer`. The cases which need to be re-checked are hard to spot so rather than rely on reviewer effort create better safety by making all self->buffer access go through helper functions. Thank you yihong0618 for the test, NEWS and initial implementation in gh-143041. Co-authored-by: yihong0618 <zouzou0208@gmail.com> Co-authored-by: Victor Stinner <vstinner@python.org> |
||
|---|---|---|
| .. | ||
| clinic | ||
| _iomodule.c | ||
| _iomodule.h | ||
| bufferedio.c | ||
| bytesio.c | ||
| fileio.c | ||
| iobase.c | ||
| stringio.c | ||
| textio.c | ||
| winconsoleio.c | ||