From 4aea7d3811970e1f88f0804baaf55fa94987772c Mon Sep 17 00:00:00 2001 From: Stefan Krah Date: Mon, 27 Feb 2012 16:30:26 +0100 Subject: [PATCH] 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. --- Modules/timemodule.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Modules/timemodule.c b/Modules/timemodule.c index 34c701984c9..59fe3eef03e 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -540,7 +540,7 @@ time_strftime(PyObject *self, PyObject *args) 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 @@ time_strftime(PyObject *self, PyObject *args) !strchr("aAbBcdHIjmMpSUwWxXyYzZ%", outbuf[1])) { PyErr_SetString(PyExc_ValueError, "Invalid format string"); - return 0; + Py_DECREF(format); + return NULL; } } #endif