In stats_fill_fe_stats(), some fields are conditionnal (ST_F_HRSP_* for
instance). But unlike unimplemented fields, for those fields, the <metric>
variable is used to fill the <stats> 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.
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);