]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Correct freeing of Cassandra results
authorNick Porter <nick@portercomputing.co.uk>
Wed, 27 Nov 2024 12:30:06 +0000 (12:30 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Wed, 27 Nov 2024 12:30:06 +0000 (12:30 +0000)
src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c

index 9ae98b958bf0175b80b58459100cdd68a14705fd..cc2c807191b4c0653bd18c0f4b2b64165680a3a3 100644 (file)
@@ -804,9 +804,9 @@ static sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_con
        }
 
        if (query_ctx->uctx) {
-               CassResult const *result = query_ctx->uctx;
-               cass_result_free(result);
-               query_ctx->uctx = NULL;
+               cassandra_query_ctx_t *cass_query_ctx = talloc_get_type_abort(query_ctx->uctx, cassandra_query_ctx_t);
+               if (cass_query_ctx->result) cass_result_free(cass_query_ctx->result);
+               cass_query_ctx->result = NULL;
        }
 
        return RLM_SQL_OK;
@@ -831,6 +831,7 @@ static sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, rlm_sql_config_t
 {
        cassandra_query_ctx_t   *cass_query_ctx = talloc_get_type_abort(query_ctx->uctx, cassandra_query_ctx_t);
 
+       cass_result_free(cass_query_ctx->result);
        talloc_const_free(cass_query_ctx->error.msg);
 
        return sql_free_result(query_ctx, config);