Commit 93c5a5df authored by Oren Milman's avatar Oren Milman Committed by Victor Stinner

bpo-31740: Prevent refleaks when sqlite3.Connection.__init__() is called more than once (GH-3944)

parent a997c7b4
......@@ -97,15 +97,15 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
self->begin_statement = NULL;
self->statement_cache = NULL;
self->statements = NULL;
self->cursors = NULL;
Py_CLEAR(self->statement_cache);
Py_CLEAR(self->statements);
Py_CLEAR(self->cursors);
Py_INCREF(Py_None);
self->row_factory = Py_None;
Py_XSETREF(self->row_factory, Py_None);
Py_INCREF(&PyUnicode_Type);
self->text_factory = (PyObject*)&PyUnicode_Type;
Py_XSETREF(self->text_factory, (PyObject*)&PyUnicode_Type);
#ifdef SQLITE_OPEN_URI
Py_BEGIN_ALLOW_THREADS
......@@ -137,7 +137,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
} else {
Py_INCREF(isolation_level);
}
self->isolation_level = NULL;
Py_CLEAR(self->isolation_level);
if (pysqlite_connection_set_isolation_level(self, isolation_level) < 0) {
Py_DECREF(isolation_level);
return -1;
......@@ -177,12 +177,12 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
}
self->check_same_thread = check_same_thread;
self->function_pinboard = PyDict_New();
Py_XSETREF(self->function_pinboard, PyDict_New());
if (!self->function_pinboard) {
return -1;
}
self->collations = PyDict_New();
Py_XSETREF(self->collations, PyDict_New());
if (!self->collations) {
return -1;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment