From: Raymond Hettinger Date: Sun, 19 Sep 2004 06:00:15 +0000 (+0000) Subject: SF bug #1030557: PyMapping_Check crashes when argument is NULL X-Git-Tag: v2.4b1~235 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1be1a79ff996cda1c5f780d2409406d6ba88b36d;p=python 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. --- diff --git a/Objects/abstract.c b/Objects/abstract.c index bc36c6fdd4..377f359300 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -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 &&