Patches #1298449 and #1298499: Add some missing checks for error

returns in cStringIO.c.  Thanks to Andrew Bennetts.

This must be a backport candidate.
This commit is contained in:
Michael W. Hudson 2005-09-22 09:19:01 +00:00
parent 19e11c86a7
commit 10402a306f
4 changed files with 26 additions and 7 deletions

View file

@ -241,7 +241,10 @@ IO_readlines(IOobject *self, PyObject *args) {
line = PyString_FromStringAndSize (output, n);
if (!line)
goto err;
PyList_Append (result, line);
if (PyList_Append (result, line) == -1) {
Py_DECREF (line);
goto err;
}
Py_DECREF (line);
length += n;
if (hint > 0 && length >= hint)
@ -440,13 +443,18 @@ O_writelines(Oobject *self, PyObject *args) {
Py_DECREF(it);
Py_DECREF(s);
return NULL;
}
Py_DECREF(s);
}
Py_DECREF(it);
Py_RETURN_NONE;
}
}
Py_DECREF(s);
}
Py_DECREF(it);
/* See if PyIter_Next failed */
if (PyErr_Occurred())
return NULL;
Py_RETURN_NONE;
}
static struct PyMethodDef O_methods[] = {
/* Common methods: */
{"flush", (PyCFunction)IO_flush, METH_NOARGS, IO_flush__doc__},