From: Klement Sekera Date: Thu, 28 Oct 2021 08:16:09 +0000 (+0200) Subject: ioam: fix coverity warning/NULL dereference X-Git-Tag: v22.06-rc0~351 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=9f4e5d8e512e1d41b8735c1227282d713f50466d;p=vpp.git 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 --- 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); }