mirror of
https://github.com/PyMySQL/mysqlclient.git
synced 2025-08-16 03:50:43 +08:00
Fix a memory leak if the connect fails
This commit is contained in:
@ -239,6 +239,8 @@ _mysql_connect(
|
|||||||
c = PyObject_NEW(_mysql_ConnectionObject,
|
c = PyObject_NEW(_mysql_ConnectionObject,
|
||||||
&_mysql_ConnectionObject_Type);
|
&_mysql_ConnectionObject_Type);
|
||||||
if (c == NULL) return NULL;
|
if (c == NULL) return NULL;
|
||||||
|
c->converter = NULL;
|
||||||
|
c->open = 0;
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ssssisOiiisss:connect",
|
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ssssisOiiisss:connect",
|
||||||
kwlist,
|
kwlist,
|
||||||
&host, &user, &passwd, &db,
|
&host, &user, &passwd, &db,
|
||||||
@ -246,8 +248,10 @@ _mysql_connect(
|
|||||||
&connect_timeout,
|
&connect_timeout,
|
||||||
&compress, &named_pipe,
|
&compress, &named_pipe,
|
||||||
&init_command, &read_default_file,
|
&init_command, &read_default_file,
|
||||||
&read_default_group))
|
&read_default_group)) {
|
||||||
|
Py_DECREF(c);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (!conv)
|
if (!conv)
|
||||||
conv = PyDict_New();
|
conv = PyDict_New();
|
||||||
@ -287,7 +291,6 @@ _mysql_connect(
|
|||||||
|
|
||||||
if (!conn) {
|
if (!conn) {
|
||||||
_mysql_Exception(c);
|
_mysql_Exception(c);
|
||||||
c->open = 0;
|
|
||||||
Py_DECREF(c);
|
Py_DECREF(c);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user