From 9f4e5d8e512e1d41b8735c1227282d713f50466d Mon Sep 17 00:00:00 2001 From: Klement Sekera Date: Thu, 28 Oct 2021 10:16:09 +0200 Subject: [PATCH] ioam: fix coverity warning/NULL dereference Add a NULL check and missing array index to avoid multiple NULL derefences. Runnning: set ioam ip6 sr-tunnel-select disable on a fresh VPP no longer crashes. Type: fix Signed-off-by: Klement Sekera Change-Id: Ia85f92024f3b14ef1c4cdb9fcf794b962cad9422 --- src/plugins/ioam/ip6/ioam_cache.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/plugins/ioam/ip6/ioam_cache.h b/src/plugins/ioam/ip6/ioam_cache.h index b85172e8ac1..8c1b6291707 100644 --- a/src/plugins/ioam/ip6/ioam_cache.h +++ b/src/plugins/ioam/ip6/ioam_cache.h @@ -608,17 +608,20 @@ ioam_cache_ts_table_destroy (vlib_main_t * vm) int i; /* free pool and hash table */ - for (i = 0; i < no_of_threads; i++) + if (cm->ioam_ts_pool) { - pool_foreach (entry, cm->ioam_ts_pool[i]) - { - ioam_cache_ts_entry_free (i, entry, cm->error_node_index); - } - pool_free (cm->ioam_ts_pool[i]); - cm->ioam_ts_pool = 0; - tw_timer_wheel_free_16t_2w_512sl (&cm->timer_wheels[i]); + for (i = 0; i < no_of_threads; i++) + { + pool_foreach (entry, cm->ioam_ts_pool[i]) + { + ioam_cache_ts_entry_free (i, entry, cm->error_node_index); + } + pool_free (cm->ioam_ts_pool[i]); + cm->ioam_ts_pool[i] = 0; + tw_timer_wheel_free_16t_2w_512sl (&cm->timer_wheels[i]); + } + vec_free (cm->ioam_ts_pool); } - vec_free (cm->ioam_ts_pool); return (0); } -- 2.16.6