summaryrefslogtreecommitdiffstats
path: root/Modules/_sqlite/microprotocols.c
diff options
context:
space:
mode:
authorErlend Egeberg Aasland <erlend.aasland@innova.no>2020-10-15 12:20:15 (GMT)
committerGitHub <noreply@github.com>2020-10-15 12:20:15 (GMT)
commit644e94272a89196801825cb69a56377bf62d256a (patch)
tree1bac0d5affad364a961be7313c370261ff75c4a5 /Modules/_sqlite/microprotocols.c
parentb67cbbda3a022cec5e2ad929f0531162166e7c8d (diff)
downloadcpython-644e94272a89196801825cb69a56377bf62d256a.zip
cpython-644e94272a89196801825cb69a56377bf62d256a.tar.gz
cpython-644e94272a89196801825cb69a56377bf62d256a.tar.bz2
bpo-42021: Fix possible ref leaks during _sqlite3 module init (GH-22673)
Diffstat (limited to 'Modules/_sqlite/microprotocols.c')
-rw-r--r--Modules/_sqlite/microprotocols.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Modules/_sqlite/microprotocols.c b/Modules/_sqlite/microprotocols.c
index 64095ad..ddc30e8 100644
--- a/Modules/_sqlite/microprotocols.c
+++ b/Modules/_sqlite/microprotocols.c
@@ -37,14 +37,19 @@ static PyObject *psyco_adapters = NULL;
/* pysqlite_microprotocols_init - initialize the adapters dictionary */
int
-pysqlite_microprotocols_init(PyObject *dict)
+pysqlite_microprotocols_init(PyObject *module)
{
/* create adapters dictionary and put it in module namespace */
if ((psyco_adapters = PyDict_New()) == NULL) {
return -1;
}
- return PyDict_SetItemString(dict, "adapters", psyco_adapters);
+ if (PyModule_AddObject(module, "adapters", psyco_adapters) < 0) {
+ Py_DECREF(psyco_adapters);
+ return -1;
+ }
+
+ return 0;
}