mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
fix possible double free in TextIOWrapper.__init__ (closes #22849)
This commit is contained in:
parent
dfede95a06
commit
6c14f23100
3 changed files with 18 additions and 1 deletions
|
|
@ -2784,6 +2784,21 @@ class TextIOWrapperTest(unittest.TestCase):
|
|||
self.assertFalse(err)
|
||||
self.assertEqual("ok", out.decode().strip())
|
||||
|
||||
def test_issue22849(self):
|
||||
class F(object):
|
||||
def readable(self): return True
|
||||
def writable(self): return True
|
||||
def seekable(self): return True
|
||||
|
||||
for i in range(10):
|
||||
try:
|
||||
self.TextIOWrapper(F(), encoding='utf-8')
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
F.tell = lambda x: 0
|
||||
t = self.TextIOWrapper(F(), encoding='utf-8')
|
||||
|
||||
|
||||
class CTextIOWrapperTest(TextIOWrapperTest):
|
||||
io = io
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #22849: Fix possible double free in the io.TextIOWrapper constructor.
|
||||
|
||||
- Issue #12728: Different Unicode characters having the same uppercase but
|
||||
different lowercase are now matched in case-insensitive regular expressions.
|
||||
|
||||
|
|
|
|||
|
|
@ -1061,7 +1061,7 @@ textiowrapper_init(textio *self, PyObject *args, PyObject *kwds)
|
|||
}
|
||||
|
||||
/* Finished sorting out the codec details */
|
||||
Py_DECREF(codec_info);
|
||||
Py_CLEAR(codec_info);
|
||||
|
||||
self->buffer = buffer;
|
||||
Py_INCREF(buffer);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue