diff options
author | Erlend Egeberg Aasland <erlend.aasland@innova.no> | 2020-10-15 12:20:15 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-15 12:20:15 (GMT) |
commit | 644e94272a89196801825cb69a56377bf62d256a (patch) | |
tree | 1bac0d5affad364a961be7313c370261ff75c4a5 /Modules/_sqlite/microprotocols.c | |
parent | b67cbbda3a022cec5e2ad929f0531162166e7c8d (diff) | |
download | cpython-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.c | 9 |
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; } |