From 584dfdb014a51e26c1f99f1d4bc672a635fb8d01 Mon Sep 17 00:00:00 2001 From: Nick Porter Date: Fri, 7 Mar 2025 11:13:25 +0000 Subject: [PATCH] Ensure rlm_stats is only called from RADIUS virtual servers --- src/modules/rlm_stats/rlm_stats.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/modules/rlm_stats/rlm_stats.c b/src/modules/rlm_stats/rlm_stats.c index 70b0d0b708..9ba0b55ce7 100644 --- a/src/modules/rlm_stats/rlm_stats.c +++ b/src/modules/rlm_stats/rlm_stats.c @@ -173,6 +173,11 @@ static unlang_action_t CC_HINT(nonnull) mod_stats_inc(rlm_rcode_t *p_result, mod rlm_stats_data_t *stats; rlm_stats_data_t mydata; + if (request->dict != dict_radius) { + RWARN("%s can only be called in RADIUS virtual servers", mctx->mi->name); + RETURN_MODULE_NOOP; + } + src_code = request->packet->code; if (src_code >= FR_RADIUS_CODE_MAX) src_code = 0; @@ -255,6 +260,11 @@ static unlang_action_t CC_HINT(nonnull) mod_stats_read(rlm_rcode_t *p_result, mo rlm_stats_data_t mydata; uint64_t local_stats[NUM_ELEMENTS(inst->mutable->stats)]; + if (request->dict != dict_radius) { + RWARN("%s can only be called in RADIUS virtual servers", mctx->mi->name); + RETURN_MODULE_NOOP; + } + /* * Ignore "authenticate" and anything other than Status-Server */ @@ -323,10 +333,6 @@ static unlang_action_t CC_HINT(nonnull) mod_stats_read(rlm_rcode_t *p_result, mo } } - /* - * @todo - do this only for RADIUS - * key off of packet ID, and Stats4-Packet-Counters TLV. - */ for (i = 0; i < FR_RADIUS_CODE_MAX; i++) { fr_dict_attr_t const *da; -- 2.47.2