diff --git a/Modules/timemodule.c b/Modules/timemodule.c index aee599ae71a..6e6abfb2191 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -135,7 +135,16 @@ time_convert(when, function) time_t when; struct tm * (*function) PROTO((const time_t *)); { - struct tm *p = function(&when); + struct tm *p; + errno = 0; + p = function(&when); + if (p == NULL) { +#ifdef EINVAL + if (errno == NULL) + errno = EINVAL; +#endif + return err_errno(IOError); + } return mkvalue("(iiiiiiiii)", p->tm_year + 1900, p->tm_mon + 1, /* Want January == 1 */