[Python-checkins] r53936 - python/branches/release25-maint/Objects/stringobject.c

georg.brandl python-checkins at python.org
Mon Feb 26 14:51:35 CET 2007


Author: georg.brandl
Date: Mon Feb 26 14:51:34 2007
New Revision: 53936

Modified:
   python/branches/release25-maint/Objects/stringobject.c
Log:
Backport from Py3k branch: fix refleak in PyString_Format.
 (backport from rev. 53935)

Modified: python/branches/release25-maint/Objects/stringobject.c
==============================================================================
--- python/branches/release25-maint/Objects/stringobject.c	(original)
+++ python/branches/release25-maint/Objects/stringobject.c	Mon Feb 26 14:51:34 2007
@@ -4764,10 +4764,13 @@
 				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 @@
                         if (dict && (argidx < arglen) && c != '%') {
                                 PyErr_SetString(PyExc_TypeError,
                                            "not all arguments converted during string formatting");
+                                Py_XDECREF(temp);
                                 goto error;
                         }
 			Py_XDECREF(temp);


More information about the Python-checkins mailing list