X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Futils%2Fdbi.c;h=1de2f1abe678b74dae092b4b51b40a888b68ceb0;hb=ea29adb896a47f32e86119d6161dc5bc2259565b;hp=26926183e4528a71dd0d495c10377d0c6adbfa67;hpb=ddb7ffc175e49abfa69c82777b88d73e1f1103fb;p=sysdb.git diff --git a/src/utils/dbi.c b/src/utils/dbi.c index 2692618..1de2f1a 100644 --- a/src/utils/dbi.c +++ b/src/utils/dbi.c @@ -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);