From 644e94272a89196801825cb69a56377bf62d256a Mon Sep 17 00:00:00 2001 From: Erlend Egeberg Aasland Date: Thu, 15 Oct 2020 14:20:15 +0200 Subject: bpo-42021: Fix possible ref leaks during _sqlite3 module init (GH-22673) --- Modules/_sqlite/microprotocols.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'Modules/_sqlite/microprotocols.c') diff --git a/Modules/_sqlite/microprotocols.c b/Modules/_sqlite/microprotocols.c index 64095adb4d..ddc30e8a89 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; } -- cgit v1.2.1