]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Fix potential memory leak
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 6 Mar 2013 03:38:03 +0000 (22:38 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 6 Mar 2013 03:38:03 +0000 (22:38 -0500)
src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c

index 429d4ed9a570b5182f89a7d77c577df0b124b025..eb89dd35c2cbe3d1b88a39d13d6243321d3bca27 100644 (file)
@@ -284,8 +284,12 @@ static int sql_fetch_row(rlm_sql_handle_t *handle, rlm_sql_config_t *config)
        }
 
        /*
-        *      Results should probably
+        *      Free the previous result (also gets called on finish_query)
         */
+       if (handle->row) {
+               talloc_free(handle->row);       
+       }
+       
        MEM(row = handle->row = talloc_zero_array(handle->conn, char *,
                                                  conn->col_count + 1));
        
@@ -431,9 +435,10 @@ static int sql_finish_query(rlm_sql_handle_t *handle,
  *     Purpose: End the select query, such as freeing memory or result
  *
  *************************************************************************/
-static int sql_finish_select_query(rlm_sql_handle_t * handle, rlm_sql_config_t *config)
+static int sql_finish_select_query(rlm_sql_handle_t *handle,
+                                  rlm_sql_config_t *config)
 {
-       return sql_finish_query(handle, config);
+       return sql_free_result(handle, config);
 }
 
 
@@ -445,7 +450,8 @@ static int sql_finish_select_query(rlm_sql_handle_t * handle, rlm_sql_config_t *
  *              statement 
  *
  *************************************************************************/
-static int sql_affected_rows(rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t *config)
+static int sql_affected_rows(rlm_sql_handle_t *handle,
+                            UNUSED rlm_sql_config_t *config)
 {
        rlm_sql_conn *conn = handle->conn;