Commit b5be6d48 authored by Amaury Forgeot d'Arc's avatar Amaury Forgeot d'Arc

re-merge r69268 (issue4804) from trunk:

Now that the C runtime assertions are not silenced any more,
we must provide checks for the format string of strftime
parent f5b52246
......@@ -513,6 +513,24 @@ time_strftime(PyObject *self, PyObject *args)
if (format == NULL)
return NULL;
fmt = PyBytes_AS_STRING(format);
#ifdef MS_WINDOWS
/* check that the format string contains only valid directives */
for(outbuf = strchr(fmt, '%');
outbuf != NULL;
outbuf = strchr(outbuf+2, '%'))
{
if (outbuf[1]=='#')
++outbuf; /* not documented by python, */
if (outbuf[1]=='\0' ||
!strchr("aAbBcdfHIjmMpSUwWxXyYzZ%", outbuf[1]))
{
PyErr_SetString(PyExc_ValueError, "Invalid format string");
return 0;
}
}
#endif
fmtlen = strlen(fmt);
/* I hate these functions that presume you know how big the output
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment