summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfenglei <1579628578@qq.com>2024-12-14 11:12:27 +0800
committerBeno�t Ganne <bganne@cisco.com>2024-12-16 10:45:07 +0000
commitd1177514c4085f7fcdf09ddfcffa5a5d9a2774a8 (patch)
treede5d5a5d29444848f37faae82213a3b353c762d0
parent0ad98a8c9d36fe2363e9bb6a23a500c4097b25fc (diff)
policer: fix policer_input coredump
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 <1579628578@qq.com>
-rw-r--r--src/vnet/policer/policer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vnet/policer/policer.c b/src/vnet/policer/policer.c
index eb7d40a340a..1c575c84ccd 100644
--- a/src/vnet/policer/policer.c
+++ b/src/vnet/policer/policer.c
@@ -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);