[Python-checkins] r76299 - in python/branches/release31-maint: Objects/rangeobject.c

mark.dickinson python-checkins at python.org
Sun Nov 15 13:56:59 CET 2009


Author: mark.dickinson
Date: Sun Nov 15 13:56:59 2009
New Revision: 76299

Log:
Merged revisions 76298 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r76298 | mark.dickinson | 2009-11-15 12:56:08 +0000 (Sun, 15 Nov 2009) | 1 line
  
  Fix another case of potential signed overflow.
........


Modified:
   python/branches/release31-maint/   (props changed)
   python/branches/release31-maint/Objects/rangeobject.c

Modified: python/branches/release31-maint/Objects/rangeobject.c
==============================================================================
--- python/branches/release31-maint/Objects/rangeobject.c	(original)
+++ python/branches/release31-maint/Objects/rangeobject.c	Sun Nov 15 13:56:59 2009
@@ -354,7 +354,10 @@
 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;
 }
 


More information about the Python-checkins mailing list