Deferred the attribute name object type checking to the underlying
PyObject_Set/GetAttr() calls.

This patch fixes bug #113829.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 47c8af3..3eac8d5 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -824,7 +824,7 @@
 	PyObject *v, *result, *dflt = NULL;
 	PyObject *name;
 
-	if (!PyArg_ParseTuple(args, "OS|O:getattr", &v, &name, &dflt))
+	if (!PyArg_ParseTuple(args, "OO|O:getattr", &v, &name, &dflt))
 		return NULL;
 	result = PyObject_GetAttr(v, name);
 	if (result == NULL && dflt != NULL) {
@@ -867,7 +867,7 @@
 	PyObject *v;
 	PyObject *name;
 
-	if (!PyArg_ParseTuple(args, "OS:hasattr", &v, &name))
+	if (!PyArg_ParseTuple(args, "OO:hasattr", &v, &name))
 		return NULL;
 	v = PyObject_GetAttr(v, name);
 	if (v == NULL) {
@@ -1076,7 +1076,7 @@
 	PyObject *name;
 	PyObject *value;
 
-	if (!PyArg_ParseTuple(args, "OSO:setattr", &v, &name, &value))
+	if (!PyArg_ParseTuple(args, "OOO:setattr", &v, &name, &value))
 		return NULL;
 	if (PyObject_SetAttr(v, name, value) != 0)
 		return NULL;
@@ -1097,7 +1097,7 @@
 	PyObject *v;
 	PyObject *name;
 
-	if (!PyArg_ParseTuple(args, "OS:delattr", &v, &name))
+	if (!PyArg_ParseTuple(args, "OO:delattr", &v, &name))
 		return NULL;
 	if (PyObject_SetAttr(v, name, (PyObject *)NULL) != 0)
 		return NULL;