[New-bugs-announce] [issue29874] Need a look for return value checking [selectmodule.c]
Alex CHEN
report at bugs.python.org
Wed Mar 22 00:14:16 EDT 2017
New submission from Alex CHEN:
In file selectmodule.c
our static code scanner has reported the following case, function set2list is liable to return NULL (if PyTuple_New failed), would any chance the NULL pointer be dereferenced (Py_DECREF(fdlist) after set2list) or it would just raise python exception to handle PyTuple_New error ?
static PyObject *
select_select(PyObject *self, PyObject *args)
{
......
if (n < 0) {
PyErr_SetFromErrno(SelectError);
}
#endif
else {
/* any of these three calls can raise an exception. it's more
convenient to test for this after all three calls... but
is that acceptable?
*/
ifdlist = set2list(&ifdset, rfd2obj); // || <=====
ofdlist = set2list(&ofdset, wfd2obj); // ||
efdlist = set2list(&efdset, efd2obj); // ||
if (PyErr_Occurred())
ret = NULL;
else
ret = PyTuple_Pack(3, ifdlist, ofdlist, efdlist);
Py_DECREF(ifdlist);
Py_DECREF(ofdlist);
Py_DECREF(efdlist);
----------
messages: 289967
nosy: alexc
priority: normal
severity: normal
status: open
title: Need a look for return value checking [selectmodule.c]
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue29874>
_______________________________________
More information about the New-bugs-announce
mailing list