policer: fix policer_input coredump 23/42023/2
authorfenglei <[email protected]>
Sat, 14 Dec 2024 03:12:27 +0000 (11:12 +0800)
committerBeno�t Ganne <[email protected]>
Mon, 16 Dec 2024 10:45:07 +0000 (10:45 +0000)
Type: fix

policer_input didn't check policer_index will lead to coredump
when refer to cm->counters[thread_index] variable, cm->counters[thread_index] is null.

Change-Id: I8c6ef6c4c2bc96f23ab806327cb6f179c958cee2
Signed-off-by: fenglei <[email protected]>
src/vnet/policer/policer.c

index eb7d40a..1c575c8 100644 (file)
@@ -226,6 +226,9 @@ policer_input (u32 policer_index, u32 sw_if_index, vlib_dir_t dir, bool apply)
 {
   vnet_policer_main_t *pm = &vnet_policer_main;
 
+  if (pool_is_free_index (pm->policers, policer_index))
+    return VNET_API_ERROR_NO_SUCH_ENTRY;
+
   if (apply)
     {
       vec_validate (pm->policer_index_by_sw_if_index[dir], sw_if_index);