fix len() when __len__() returns a non number type #5137
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 47e425c..a362b84 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -4618,7 +4618,7 @@
 
 	if (res == NULL)
 		return -1;
-	len = PyLong_AsSsize_t(res);
+	len = PyNumber_AsSsize_t(res, PyExc_OverflowError);
 	Py_DECREF(res);
 	if (len < 0) {
 		if (!PyErr_Occurred())