instancemethod_setattro(): Raise TypeError if an attempt is made to
set a function attribute on a method (either bound or unbound).  This
reverts to Python 2.0 behavior that no attributes of the method are
writable, but provides a more informative error message.
diff --git a/Objects/classobject.c b/Objects/classobject.c
index bb17df1..9cca19f 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -1866,21 +1866,8 @@
 {
 	char *sname = PyString_AsString(name);
 
-	if (PyEval_GetRestricted() ||
-	    strcmp(sname, "im_func") == 0 ||
-	    strcmp(sname, "im_self") == 0 ||
-	    strcmp(sname, "im_class") == 0)
-	{
-		PyErr_Format(PyExc_TypeError, "read-only attribute: %s",
-			     sname);
-		return -1;
-	}
-	if (im->im_self != NULL) {
-		PyErr_Format(PyExc_TypeError,
-			     "cannot set attributes through bound methods");
-		return -1;
-	}
-	return PyObject_SetAttr(im->im_func, name, v);
+	PyErr_Format(PyExc_TypeError, "read-only attribute: %s", sname);
+	return -1;
 }