#941 Free dbi_inst when og_dbi_open fails to connect

When trying to open a connection to a database, an instance of
libdbi is created before any connection attempt. If connection is
unsuccessful then the og_dbi struct is freed but not the
libdbi instance member, thus leaking its memory.

Use libdbi dbi_shutdown_r to shutdown libdbi instance member
before freeing og_dbi struct inside og_dbi_open.
master
Jose M. Guisado 2021-06-01 13:28:37 +02:00 committed by OpenGnSys Support Team
parent 41fad11408
commit cb7fa569b2
1 changed files with 1 additions and 0 deletions

View File

@ -39,6 +39,7 @@ struct og_dbi *og_dbi_open(struct og_dbi_config *config)
dbi_conn_set_option(dbi->conn, "encoding", "UTF-8");
if (dbi_conn_connect(dbi->conn) < 0) {
dbi_shutdown_r(dbi->inst);
free(dbi);
return NULL;
}