From db847bd9ea6df19ca4a81558f4cc6d3622aecf24 Mon Sep 17 00:00:00 2001 From: Guido van Rossum 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