From 25329a9097cbd272a4d94e2ae9b09e423016c022 Mon Sep 17 00:00:00 2001 From: Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> Date: Tue, 2 Dec 2025 11:32:17 +0100 Subject: check_snmp: fix offset computation for INTEGER (#2190) --- plugins/check_snmp.d/check_snmp_helpers.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'plugins/check_snmp.d/check_snmp_helpers.c') diff --git a/plugins/check_snmp.d/check_snmp_helpers.c b/plugins/check_snmp.d/check_snmp_helpers.c index ecbfc5dd..f506537a 100644 --- a/plugins/check_snmp.d/check_snmp_helpers.c +++ b/plugins/check_snmp.d/check_snmp_helpers.c @@ -446,7 +446,8 @@ check_snmp_evaluation evaluate_single_unit(response_value response, long long treated_value = (long long)response.value.uIntVal; if (eval_params.multiplier_set || eval_params.offset_set) { - double processed = 0; + double processed = (double)response.value.uIntVal; + if (eval_params.offset_set) { processed += eval_params.offset; } @@ -480,15 +481,16 @@ check_snmp_evaluation evaluate_single_unit(response_value response, } break; case ASN_INTEGER: { if (eval_params.multiplier_set || eval_params.offset_set) { - double processed = 0; - if (eval_params.multiplier_set) { - processed = (double)response.value.intVal * eval_params.multiplier; - } + double processed = (double)response.value.intVal; if (eval_params.offset_set) { processed += eval_params.offset; } + if (eval_params.multiplier_set) { + processed *= eval_params.multiplier; + } + result_state.value.doubleVal = processed; if (eval_params.calculate_rate && have_previous_state) { -- cgit v1.2.3-74-g34f1