vlib: fix counter_index check

Ensure counter index is valid before using it to lookup
the counter.

Type: fix
Change-Id: I423c7a6aa6b65f6367b18d8e99cf40f52e06b416
Signed-off-by: lijinhui <lijh_7@chinatelecom.cn>
This commit is contained in:
lijinhui
2024-02-22 11:16:10 +08:00
committed by Damjan Marion
parent 5e814768b8
commit eb2a4189f5

View File

@ -93,10 +93,12 @@ format_error_trace (u8 * s, va_list * va)
u32 i;
error_node = vlib_get_node (vm, vlib_error_get_node (&vm->node_main, e[0]));
i = counter_index (vm, vlib_error_get_code (&vm->node_main, e[0])) +
error_node->error_heap_index;
i = counter_index (vm, vlib_error_get_code (&vm->node_main, e[0]));
if (i != CLIB_U32_MAX)
s = format (s, "%v: %s", error_node->name, em->counters_heap[i].desc);
{
i += error_node->error_heap_index;
s = format (s, "%v: %s", error_node->name, em->counters_heap[i].desc);
}
return s;
}