Pull a NULL pointer check up to cover more cases in the function.
Found using Clang's static analyzer.
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 0b541ee..fddaed8 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1833,11 +1833,13 @@
int
PySequence_Check(PyObject *s)
{
- if (s && PyInstance_Check(s))
+ if (s == NULL)
+ return 0;
+ if (PyInstance_Check(s))
return PyObject_HasAttrString(s, "__getitem__");
if (PyDict_Check(s))
return 0;
- return s != NULL && s->ob_type->tp_as_sequence &&
+ return s->ob_type->tp_as_sequence &&
s->ob_type->tp_as_sequence->sq_item != NULL;
}