Skip to content

Commit

Permalink
CONPY-155: segmentation fault on calling connection.get_server_version()
Browse files Browse the repository at this point in the history
Check if connection is still active and increment reference counter for
server_version.
  • Loading branch information
9EOR9 committed Jun 6, 2021
1 parent b0235e8 commit 9bb4e37
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
2 changes: 2 additions & 0 deletions mariadb/mariadb_connection.c
Original file line number Diff line number Diff line change
Expand Up @@ -1388,6 +1388,8 @@ MrdbConnection_exit(MrdbConnection *self, PyObject *args __attribute__((unused))

static PyObject *MrdbConnection_get_server_version(MrdbConnection *self)
{
MARIADB_CHECK_CONNECTION(self, NULL);
Py_INCREF(self->server_version_info);
return self->server_version_info;
}

Expand Down
14 changes: 14 additions & 0 deletions testing/test/integration/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,5 +190,19 @@ def test_conpy101(self):
c1 = mariadb.connect(**default_conf, autocommit=True)
self.assertEqual(c1.autocommit, True)

def test_conpy155(self):
default_conf= conf()
c1 = mariadb.connect(**default_conf)
version= c1.get_server_version()
self.assertEqual(c1.get_server_version(), version)
self.assertEqual(c1.get_server_version(), version)
self.assertEqual(c1.get_server_version(), version)
self.assertEqual(c1.get_server_version(), version)
c1.close()
try:
version= c1.get_server_version()
except mariadb.InterfaceError:
pass

if __name__ == '__main__':
unittest.main()

0 comments on commit 9bb4e37

Please sign in to comment.