From 8596bfbafdd161f51a25bc2f6c37b87b2cddd089 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Mon, 25 Jan 2021 15:16:41 +0100 Subject: [PATCH] BUG/MINOR: stats: Init the metric variable when frontend stats are filled In stats_fill_fe_stats(), some fields are conditionnal (ST_F_HRSP_* for instance). But unlike unimplemented fields, for those fields, the variable is used to fill the array, but it is not initialized. This bug as no impact, because these fields are not used. But it is better to fix it now to avoid future bugs. To fix it, the metric is now defined and initialized into the for loop. The bug was introduced by the commit 0ef54397 ("MEDIUM: stats: allow to select one field in `stats_fill_fe_stats`"). No backport is needed except if the above commit is backported. It fixes the issue #1063. --- src/stats.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/stats.c b/src/stats.c index e1b350a44..1b8fad340 100644 --- a/src/stats.c +++ b/src/stats.c @@ -1632,12 +1632,13 @@ int stats_fill_fe_stats(struct proxy *px, struct field *stats, int len, enum stat_field *selected_field) { enum stat_field current_field = (selected_field != NULL ? *selected_field : 0); - struct field metric; if (len < ST_F_TOTAL_FIELDS) return 0; for (; current_field < ST_F_TOTAL_FIELDS; current_field++) { + struct field metric = { 0 }; + switch (current_field) { case ST_F_PXNAME: metric = mkf_str(FO_KEY|FN_NAME|FS_SERVICE, px->id);