From 5f795865da15f1001dd876cda3932f8daf2bc384 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 26 Feb 2007 13:51:34 +0000 Subject: Backport from Py3k branch: fix refleak in PyString_Format. (backport from rev. 53935) --- Objects/stringobject.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Objects/stringobject.c b/Objects/stringobject.c index aa2fd87..5ae2ca0 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -4764,10 +4764,13 @@ PyString_Format(PyObject *format, PyObject *args) reslen += rescnt; if (reslen < 0) { Py_DECREF(result); + Py_XDECREF(temp); return PyErr_NoMemory(); } - if (_PyString_Resize(&result, reslen) < 0) + if (_PyString_Resize(&result, reslen) < 0) { + Py_XDECREF(temp); return NULL; + } res = PyString_AS_STRING(result) + reslen - rescnt; } @@ -4818,6 +4821,7 @@ PyString_Format(PyObject *format, PyObject *args) if (dict && (argidx < arglen) && c != '%') { PyErr_SetString(PyExc_TypeError, "not all arguments converted during string formatting"); + Py_XDECREF(temp); goto error; } Py_XDECREF(temp); -- cgit v0.12