summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1999-09-27 17:11:52 (GMT)
committerGuido van Rossum <guido@python.org>1999-09-27 17:11:52 (GMT)
commit1a23c2484ece91d06f75d9ebdaf2ada951c87c82 (patch)
tree3c8483c25d1939d013949a3b15b0eee79e199489
parenta840fca15590f2369bb5381be86d13ce12563f73 (diff)
downloadcpython-1a23c2484ece91d06f75d9ebdaf2ada951c87c82.zip
cpython-1a23c2484ece91d06f75d9ebdaf2ada951c87c82.tar.gz
cpython-1a23c2484ece91d06f75d9ebdaf2ada951c87c82.tar.bz2
Patch by Tim Peters fixing PR#89:
long(+/- infinity) returns nonsense.
-rw-r--r--Objects/longobject.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 7c805a5..9f605a1 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -145,6 +145,11 @@ PyLong_FromDouble(dval)
double frac;
int i, ndig, expo, neg;
neg = 0;
+ if (dval && dval * 0.5 == dval) {
+ PyErr_SetString(PyExc_OverflowError,
+ "cannot convert float infinity to long");
+ return NULL;
+ }
if (dval < 0.0) {
neg = 1;
dval = -dval;