From e106e5ce4b995e9b77ecd256c8062e95f74fae04 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 18 Nov 2013 18:37:33 +0100 Subject: Issue #19437: Fix error handling of PyCArrayType_new(), don't decreases the reference counter of stgdict after result stole a reference to it --- Modules/_ctypes/_ctypes.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index be0f33a..820a606 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -1342,7 +1342,8 @@ PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds) if (-1 == PyDict_Update((PyObject *)stgdict, result->tp_dict)) goto error; Py_DECREF(result->tp_dict); - result->tp_dict = (PyObject *)stgdict; + result->tp_dict = (PyObject *)stgdict; /* steal the reference */ + stgdict = NULL; /* Special case for character arrays. A permanent annoyance: char arrays are also strings! -- cgit v0.12