stats: fix vector overrun in expend check 17/35917/3
authorDmitry Valter <d-valter@yandex-team.ru>
Fri, 8 Apr 2022 10:08:32 +0000 (10:08 +0000)
committerDamjan Marion <dmarion@me.com>
Fri, 8 Apr 2022 16:15:32 +0000 (16:15 +0000)
Do not access allocated elements beyond the end of the vector. They are
allocated, but not yet valid both logically (they are at best NULLs) and
according to ASAN.

Type: fix
Change-Id: Iaf43767d6d3bd4c24c7c5a0ba9b3410bbeeb0556
Signed-off-by: Dmitry Valter <d-valter@yandex-team.ru>
src/vlib/stats/stats.c

index cb29dda..a19909d 100644 (file)
@@ -354,7 +354,7 @@ vlib_stats_validate_will_expand_internal (u32 entry_index, va_list *va)
       u32 idx1 = va_arg (*va, u32);
       u64 **data = e->data;
 
-      if (idx0 >= vec_max_len (data))
+      if (idx0 >= vec_len (data))
        goto done;
 
       for (u32 i = 0; i <= idx0; i++)
@@ -369,7 +369,7 @@ vlib_stats_validate_will_expand_internal (u32 entry_index, va_list *va)
 
       va_end (*va);
 
-      if (idx0 >= vec_max_len (data))
+      if (idx0 >= vec_len (data))
        goto done;
 
       for (u32 i = 0; i <= idx0; i++)