From: Stefan Krah Date: Mon, 27 Feb 2012 15:30:26 +0000 (+0100) Subject: Issue #14125: Fix refleak in timemodule.c on Windows. Thanks sbt for pointing X-Git-Tag: v3.3.0a1~45 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4aea7d3811970e1f88f0804baaf55fa94987772c;p=python 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 34c701984c..59fe3eef03 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