[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");

AltStyle によって変換されたページ (->オリジナル) /