mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Issue #18408: Fix iobase_readline(), handle PyByteArray_Resize() failure
This commit is contained in:
parent
af8b7e8233
commit
cc024d1820
1 changed files with 8 additions and 5 deletions
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
An implementation of the I/O abstract base classes hierarchy
|
||||
as defined by PEP 3116 - "New I/O"
|
||||
|
||||
|
||||
Classes defined here: IOBase, RawIOBase.
|
||||
|
||||
|
||||
Written by Amaury Forgeot d'Arc and Antoine Pitrou
|
||||
*/
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
|||
|
||||
typedef struct {
|
||||
PyObject_HEAD
|
||||
|
||||
|
||||
PyObject *dict;
|
||||
PyObject *weakreflist;
|
||||
} iobase;
|
||||
|
@ -530,7 +530,10 @@ iobase_readline(PyObject *self, PyObject *args)
|
|||
}
|
||||
|
||||
old_size = PyByteArray_GET_SIZE(buffer);
|
||||
PyByteArray_Resize(buffer, old_size + PyBytes_GET_SIZE(b));
|
||||
if (PyByteArray_Resize(buffer, old_size + PyBytes_GET_SIZE(b)) < 0) {
|
||||
Py_DECREF(b);
|
||||
goto fail;
|
||||
}
|
||||
memcpy(PyByteArray_AS_STRING(buffer) + old_size,
|
||||
PyBytes_AS_STRING(b), PyBytes_GET_SIZE(b));
|
||||
|
||||
|
@ -835,7 +838,7 @@ rawiobase_readall(PyObject *self, PyObject *args)
|
|||
int r;
|
||||
PyObject *chunks = PyList_New(0);
|
||||
PyObject *result;
|
||||
|
||||
|
||||
if (chunks == NULL)
|
||||
return NULL;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue