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 bc36c6f..377f359 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1085,7 +1085,7 @@
 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 @@
 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 &&