diff options
author | Steve Dower <steve.dower@microsoft.com> | 2015-09-08 21:26:59 -0700 |
---|---|---|
committer | Steve Dower <steve.dower@microsoft.com> | 2015-09-08 21:26:59 -0700 |
commit | f711a90ea8f88f2098757f44568eb654339df401 (patch) | |
tree | a15d589899ba58021bdbc9d7619b27bd3df07470 | |
parent | f772e91412afaba6cf73d7e9ee8e5ad870c2d77d (diff) | |
parent | 97cded934f7511cdad33f1f883f549aebf4e191f (diff) | |
download | cpython-git-f711a90ea8f88f2098757f44568eb654339df401.tar.gz |
Merge fix for #25029
-rw-r--r-- | Modules/timemodule.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/Modules/timemodule.c b/Modules/timemodule.c index eca67d9e28..9de3c84332 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -648,9 +648,6 @@ time_strftime(PyObject *self, PyObject *args) * will be ahead of time... */ for (i = 1024; ; i += i) { -#if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__) - int err; -#endif outbuf = (time_char *)PyMem_Malloc(i*sizeof(time_char)); if (outbuf == NULL) { PyErr_NoMemory(); @@ -660,10 +657,14 @@ time_strftime(PyObject *self, PyObject *args) buflen = format_time(outbuf, i, fmt, &buf); _Py_END_SUPPRESS_IPH #if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__) - err = errno; + /* VisualStudio .NET 2005 does this properly */ + if (buflen == 0 && errno == EINVAL) { + PyErr_SetString(PyExc_ValueError, "Invalid format string"); + PyMem_Free(outbuf); + break; + } #endif - if (buflen > 0 || fmtlen == 0 || - (fmtlen > 4 && i >= 256 * fmtlen)) { + if (buflen > 0 || i >= 256 * fmtlen) { /* If the buffer is 256 times as long as the format, it's probably not failing for lack of room! More likely, the format yields an empty result, @@ -679,13 +680,6 @@ time_strftime(PyObject *self, PyObject *args) break; } PyMem_Free(outbuf); -#if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__) - /* VisualStudio .NET 2005 does this properly */ - if (buflen == 0 && err == EINVAL) { - PyErr_SetString(PyExc_ValueError, "Invalid format string"); - break; - } -#endif } #ifdef HAVE_WCSFTIME PyMem_Free(format); |