Issue #14125: Fix refleak in timemodule.c on Windows. Thanks sbt for pointing
out the location of the problem. MS_WINDOWS currently implies !HAVE_WCSFTIME,
so the addition of !defined(HAVE_WCSFTIME) is for readability.
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 34c7019..59fe3ee 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -540,7 +540,7 @@
fmt = PyBytes_AS_STRING(format);
#endif
-#if defined(MS_WINDOWS)
+#if defined(MS_WINDOWS) && !defined(HAVE_WCSFTIME)
/* check that the format string contains only valid directives */
for(outbuf = strchr(fmt, '%');
outbuf != NULL;
@@ -552,7 +552,8 @@
!strchr("aAbBcdHIjmMpSUwWxXyYzZ%", outbuf[1]))
{
PyErr_SetString(PyExc_ValueError, "Invalid format string");
- return 0;
+ Py_DECREF(format);
+ return NULL;
}
}
#endif