[Python-checkins] CVS: python/dist/src/Objects rangeobject.c,2.29,2.30
Guido van Rossum
gvanrossum@users.sourceforge.net
2001年12月04日 08:36:41 -0800
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv21045
Modified Files:
rangeobject.c
Log Message:
long_mul(): The PyNumber_Multiply() call can return a long if the
result would overflow an int. Check for this. (SF bug #488482, Armin
Rigo.)
Index: rangeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/rangeobject.c,v
retrieving revision 2.29
retrieving revision 2.30
diff -C2 -d -r2.29 -r2.30
*** rangeobject.c 2001年08月24日 18:34:26 2.29
--- rangeobject.c 2001年12月04日 16:36:39 2.30
***************
*** 39,46 ****
--- 39,52 ----
return 0;
+ if (!PyInt_Check(c)) {
+ Py_DECREF(c);
+ goto overflow;
+ }
+
*kk = PyInt_AS_LONG(c);
Py_DECREF(c);
if (*kk > INT_MAX) {
+ overflow:
PyErr_SetString(PyExc_OverflowError,
"integer multiplication");