From b89638148b95c4a018fc8f6c4938ffcd0e1b341a Mon Sep 17 00:00:00 2001 From: "Michael W. Hudson" Date: Tue, 5 Jul 2005 15:21:58 +0000 Subject: [PATCH] Fix bug [ 1232517 ] OverflowError in time.utime() causes strange traceback A needed error check was missing. (Actually, this error check may only have become necessary in fairly recent Python, not sure). Backport candidate. --- Misc/NEWS | 3 +++ Modules/posixmodule.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/Misc/NEWS b/Misc/NEWS index bcc696ae97..b3a56b0a3c 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,9 @@ What's New in Python 2.5 alpha 1? Core and builtins ----------------- +- SF bug #1232517: An overflow error was not detected properly when + attempting to convert a large float to an int in os.utime(). + - SF bug #1224347: hex longs now print with lowercase letters just like their int counterparts. diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index e4a0200f04..e0c2b7f4f9 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1991,6 +1991,8 @@ extract_time(PyObject *t, long* sec, long* usec) return -1; intval = PyInt_AsLong(intobj); Py_DECREF(intobj); + if (intval == -1 && PyErr_Occurred()) + return -1; *sec = intval; *usec = (long)((tval - intval) * 1e6); /* can't exceed 1000000 */ if (*usec < 0) -- 2.40.0