From: Arran Cudbard-Bell Date: Sat, 13 Jun 2015 23:35:44 +0000 (-0400) Subject: Don't set resource pointers to NULL when the handle is freed (in SQL drivers) X-Git-Tag: release_3_0_9~185 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9102fc0ed5ba9f51aa04acbd4d93dc98c6db0a84;p=thirdparty%2Ffreeradius-server.git Don't set resource pointers to NULL when the handle is freed (in SQL drivers) --- diff --git a/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c b/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c index 8778f338c20..1d119651daf 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c @@ -54,9 +54,7 @@ static int _sql_socket_destructor(rlm_sql_db2_conn_t *conn) SQLFreeHandle(SQL_HANDLE_DBC, conn->hdbc); } - if (conn->henv) { - SQLFreeHandle(SQL_HANDLE_ENV, conn->henv); - } + if (conn->henv) SQLFreeHandle(SQL_HANDLE_ENV, conn->henv); return RLM_SQL_OK; } diff --git a/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c b/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c index d04601a958f..7a811bb593f 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c @@ -52,9 +52,7 @@ static int _sql_socket_destructor(rlm_sql_firebird_conn_t *conn) pthread_mutex_destroy (&conn->mut); #endif - for (i=0; i < conn->row_fcount; i++) { - free(conn->row[i]); - } + for (i = 0; i < conn->row_fcount; i++) free(conn->row[i]); free(conn->row); free(conn->row_sizes); diff --git a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/rlm_sql_iodbc.c b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/rlm_sql_iodbc.c index 61d20868e57..682b2404636 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/rlm_sql_iodbc.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/rlm_sql_iodbc.c @@ -58,18 +58,14 @@ static int _sql_socket_destructor(rlm_sql_iodbc_conn_t *conn) { DEBUG2("rlm_sql_iodbc: Socket destructor called, closing socket"); - if (conn->stmt) { - SQLFreeStmt(conn->stmt, SQL_DROP); - } + if (conn->stmt) SQLFreeStmt(conn->stmt, SQL_DROP); if (conn->dbc_handle) { SQLDisconnect(conn->dbc_handle); SQLFreeConnect(conn->dbc_handle); } - if (conn->env_handle) { - SQLFreeEnv(conn->env_handle); - } + if (conn->env_handle) SQLFreeEnv(conn->env_handle); return 0; } diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c b/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c index a3b68215d93..3991fd0d2e4 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c @@ -120,11 +120,7 @@ static int _sql_socket_destructor(rlm_sql_mysql_conn_t *conn) static int _mod_destructor(UNUSED rlm_sql_mysql_config_t *driver) { - mysql_instance_count--; - - if (mysql_instance_count == 0) { - mysql_library_end(); - } + if (--mysql_instance_count == 0) mysql_library_end(); return 0; } diff --git a/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c b/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c index 9470c5b8333..d79fb72466e 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c @@ -129,21 +129,10 @@ unknown: static int _sql_socket_destructor(rlm_sql_oracle_conn_t *conn) { - if (conn->ctx) { - OCILogoff(conn->ctx, conn->error); - } - - if (conn->query) { - OCIHandleFree((dvoid *)conn->query, OCI_HTYPE_STMT); - } - - if (conn->error) { - OCIHandleFree((dvoid *)conn->error, OCI_HTYPE_ERROR); - } - - if (conn->env) { - OCIHandleFree((dvoid *)conn->env, OCI_HTYPE_ENV); - } + if (conn->ctx) OCILogoff(conn->ctx, conn->error); + if (conn->query) OCIHandleFree((dvoid *)conn->query, OCI_HTYPE_STMT); + if (conn->error) OCIHandleFree((dvoid *)conn->error, OCI_HTYPE_ERROR); + if (conn->env) OCIHandleFree((dvoid *)conn->env, OCI_HTYPE_ENV); return 0; } diff --git a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c index ef693c265c1..bbb91c569b4 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c @@ -221,13 +221,10 @@ static int _sql_socket_destructor(rlm_sql_postgres_conn_t *conn) { DEBUG2("rlm_sql_postgresql: Socket destructor called, closing socket"); - if (!conn->db) { - return 0; - } + if (!conn->db) return 0; /* PQfinish also frees the memory used by the PGconn structure */ PQfinish(conn->db); - conn->db = NULL; return 0; } diff --git a/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c b/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c index 3cf37dc3f63..98ec96cc7c3 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c @@ -368,9 +368,7 @@ static int _sql_socket_destructor(rlm_sql_sqlite_conn_t *conn) if (conn->db) { status = sqlite3_close(conn->db); - if (status != SQLITE_OK) { - WARN("rlm_sql_sqlite: Got SQLite error code (%u) when closing socket", status); - } + if (status != SQLITE_OK) WARN("rlm_sql_sqlite: Got SQLite error code (%u) when closing socket", status); } return 0; diff --git a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c index 7d311b1bff9..c940c204120 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c @@ -49,21 +49,14 @@ static int _sql_socket_destructor(rlm_sql_unixodbc_conn_t *conn) { DEBUG2("rlm_sql_unixodbc: Socket destructor called, closing socket"); - if (conn->stmt) { - SQLFreeStmt(conn->stmt, SQL_DROP); - conn->stmt = NULL; - } + if (conn->stmt) SQLFreeStmt(conn->stmt, SQL_DROP); if (conn->dbc) { SQLDisconnect(conn->dbc); SQLFreeConnect(conn->dbc); - conn->dbc = NULL; } - if (conn->env) { - SQLFreeEnv(conn->env); - conn->env = NULL; - } + if (conn->env) SQLFreeEnv(conn->env); return 0; }