X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Futils%2Fdbi.c;h=1de2f1abe678b74dae092b4b51b40a888b68ceb0;hb=ea29adb896a47f32e86119d6161dc5bc2259565b;hp=f89e46356a8d1b9c2d9ae4dbbcc6aa9141aa9c99;hpb=0e30e3dea2b303670cd7770e9607827a36f0cbfd;p=sysdb.git diff --git a/src/utils/dbi.c b/src/utils/dbi.c index f89e463..1de2f1a 100644 --- a/src/utils/dbi.c +++ b/src/utils/dbi.c @@ -25,8 +25,8 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "utils/error.h" #include "utils/dbi.h" +#include "utils/error.h" #include @@ -172,7 +172,7 @@ sdb_dbi_options_create(void) { sdb_dbi_options_t *options; - options = malloc(sizeof(options)); + options = malloc(sizeof(*options)); if (! options) return NULL; @@ -284,8 +284,10 @@ sdb_dbi_client_connect(sdb_dbi_client_t *client) if ((! client) || (! client->driver) || (! client->database)) return -1; - if (client->conn) + if (client->conn) { dbi_conn_close(client->conn); + client->conn = NULL; + } driver = dbi_driver_open(client->driver); if (! driver) { @@ -332,6 +334,7 @@ sdb_dbi_client_connect(sdb_dbi_client_t *client) sdb_error_log(SDB_LOG_ERR); dbi_conn_close(client->conn); + client->conn = NULL; return -1; } } @@ -340,6 +343,7 @@ sdb_dbi_client_connect(sdb_dbi_client_t *client) sdb_log(SDB_LOG_ERR, "dbi: failed to set option 'dbname': %s", sdb_dbi_strerror(client->conn)); dbi_conn_close(client->conn); + client->conn = NULL; return -1; } @@ -347,6 +351,7 @@ sdb_dbi_client_connect(sdb_dbi_client_t *client) sdb_log(SDB_LOG_ERR, "dbi: failed to connect to database '%s': %s", client->database, sdb_dbi_strerror(client->conn)); dbi_conn_close(client->conn); + client->conn = NULL; return -1; } return 0; @@ -467,6 +472,7 @@ sdb_dbi_client_destroy(sdb_dbi_client_t *client) if (client->conn) dbi_conn_close(client->conn); + client->conn = NULL; if (client->options) sdb_dbi_options_destroy(client->options);