summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorZackery Spytz <zspytz@gmail.com>2019-03-25 08:07:47 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2019-03-25 08:07:47 (GMT)
commit5e333784f007950f22de44c1ffab5b0c03d6691f (patch)
tree1b331b21914777b6d2a75980fa9fd7b00800f150 /Modules
parentdd5417afcf8924bcdd7077351941ad21727ef644 (diff)
downloadcpython-5e333784f007950f22de44c1ffab5b0c03d6691f.zip
cpython-5e333784f007950f22de44c1ffab5b0c03d6691f.tar.gz
cpython-5e333784f007950f22de44c1ffab5b0c03d6691f.tar.bz2
bpo-36421: Fix a possible double decref in _ctypes.c's PyCArrayType_new(). (GH-12530)
Set type_attr to NULL after the assignment to stgdict->proto (like what is done with stgdict after the Py_SETREF() call) so that it is not decrefed twice on error.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_ctypes/_ctypes.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 0d95d2b..45102f3 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -1522,6 +1522,7 @@ PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
stgdict->align = itemalign;
stgdict->length = length;
stgdict->proto = type_attr;
+ type_attr = NULL;
stgdict->paramfunc = &PyCArrayType_paramfunc;