mirror of https://git.48k.eu/ogserver
#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
parent
41fad11408
commit
cb7fa569b2
|
@ -39,6 +39,7 @@ struct og_dbi *og_dbi_open(struct og_dbi_config *config)
|
||||||
dbi_conn_set_option(dbi->conn, "encoding", "UTF-8");
|
dbi_conn_set_option(dbi->conn, "encoding", "UTF-8");
|
||||||
|
|
||||||
if (dbi_conn_connect(dbi->conn) < 0) {
|
if (dbi_conn_connect(dbi->conn) < 0) {
|
||||||
|
dbi_shutdown_r(dbi->inst);
|
||||||
free(dbi);
|
free(dbi);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue