mirror of https://github.com/python/cpython
SF bug #1030557: PyMapping_Check crashes when argument is NULL
Make PySequence_Check() and PyMapping_Check() handle NULL inputs. This goes beyond what most of the other checks do, but it is nice defensive programming and solves the OP's problem.
This commit is contained in:
parent
8b4e886ed9
commit
1be1a79ff9
|
@ -1085,7 +1085,7 @@ PyNumber_Float(PyObject *o)
|
|||
int
|
||||
PySequence_Check(PyObject *s)
|
||||
{
|
||||
if (PyInstance_Check(s))
|
||||
if (s && PyInstance_Check(s))
|
||||
return PyObject_HasAttrString(s, "__getitem__");
|
||||
return s != NULL && s->ob_type->tp_as_sequence &&
|
||||
s->ob_type->tp_as_sequence->sq_item != NULL;
|
||||
|
@ -1629,7 +1629,7 @@ PySequence_Index(PyObject *s, PyObject *o)
|
|||
int
|
||||
PyMapping_Check(PyObject *o)
|
||||
{
|
||||
if (PyInstance_Check(o))
|
||||
if (o && PyInstance_Check(o))
|
||||
return PyObject_HasAttrString(o, "__getitem__");
|
||||
|
||||
return o && o->ob_type->tp_as_mapping &&
|
||||
|
|
Loading…
Reference in New Issue