Issue a more meaningful error if strftime keeps returning a NULL pointer.
Run the loop up to and including 8k.
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index b9f0c49..1f55933 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -242,7 +242,7 @@
/* I hate these functions that presume you know how big the output
* will be ahead of time...
*/
- for (i = 1024 ; i < 8192 ; i += 1024) {
+ for (i = 1024 ; i <= 8192 ; i += 1024) {
outbuf = malloc(i);
if (outbuf == NULL) {
return PyErr_NoMemory();
@@ -255,7 +255,9 @@
}
free(outbuf);
}
- return PyErr_NoMemory();
+ PyErr_SetString(PyExc_ValueError,
+ "bad strftime format or result too big");
+ return NULL;
}
#endif /* HAVE_STRFTIME */
@@ -443,6 +445,7 @@
double secs;
#endif /* MPW */
{
+/* XXX Should test for MS_WIN32 first! */
#ifdef HAVE_SELECT
struct timeval t;
double frac;