summaryrefslogtreecommitdiffstats
path: root/Objects/rangeobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/rangeobject.c')
-rw-r--r--Objects/rangeobject.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c
index cabe785..ec75c8f 100644
--- a/Objects/rangeobject.c
+++ b/Objects/rangeobject.c
@@ -411,7 +411,10 @@ static PyObject *
rangeiter_next(rangeiterobject *r)
{
if (r->index < r->len)
- return PyLong_FromLong(r->start + (r->index++) * r->step);
+ /* cast to unsigned to avoid possible signed overflow
+ in intermediate calculations. */
+ return PyLong_FromLong((long)(r->start +
+ (unsigned long)(r->index++) * r->step));
return NULL;
}