From db847bd9ea6df19ca4a81558f4cc6d3622aecf24 Mon Sep 17 00:00:00 2001
From: Guido van Rossum <guido@python.org>
Date: Thu, 20 Nov 1997 20:35:45 +0000
Subject: Plug memory leak in Py_BuildValue when using {...} to construct
 dictionaries.

---
 Python/modsupport.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/Python/modsupport.c b/Python/modsupport.c
index 12ecaf6..0ddc300 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -169,6 +169,7 @@ do_mkdict(p_format, p_va, endchar, n)
 		return NULL;
 	for (i = 0; i < n; i+= 2) {
 		PyObject *k, *v;
+		int err;
 		k = do_mkvalue(p_format, p_va);
 		if (k == NULL) {
 			Py_DECREF(d);
@@ -180,9 +181,10 @@ do_mkdict(p_format, p_va, endchar, n)
 			Py_DECREF(d);
 			return NULL;
 		}
-		if (PyDict_SetItem(d, k, v) < 0) {
-			Py_DECREF(k);
-			Py_DECREF(v);
+		err = PyDict_SetItem(d, k, v);
+		Py_DECREF(k);
+		Py_DECREF(v);
+		if (err < 0) {
 			Py_DECREF(d);
 			return NULL;
 		}
-- 
cgit v0.12

