summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/rangeobject.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c
index 3080252..6c9daad 100644
--- a/Objects/rangeobject.c
+++ b/Objects/rangeobject.c
@@ -130,7 +130,14 @@ range_item(rangeobject *r, int i)
static int
range_length(rangeobject *r)
{
- return r->len;
+#if LONG_MAX != INT_MAX
+ if (r->len > INT_MAX) {
+ PyErr_SetString(PyExc_ValueError,
+ "xrange object size cannot be reported");
+ return -1;
+ }
+#endif
+ return (int)(r->len);
}
static PyObject *