ioam: fix coverity warning/NULL dereference
[vpp.git] / src / plugins / ioam / ip6 / ioam_cache.h
index e75deba..8c1b629 100644 (file)
@@ -205,6 +205,9 @@ typedef struct
   u32 ip6_hbh_pop_node_index;
   u32 error_node_index;
   u32 cleanup_process_node_index;
+
+  u32 ip6_add_from_cache_hbh_node_index;
+  u32 ip6_reset_ts_hbh_node_index;
 } ioam_cache_main_t;
 
 extern ioam_cache_main_t ioam_cache_main;
@@ -468,10 +471,10 @@ ioam_cache_table_destroy (vlib_main_t * vm)
   ioam_cache_entry_t *entry = 0;
   /* free pool and hash table */
   clib_bihash_free_8_8 (&cm->ioam_rewrite_cache_table);
-  pool_foreach (entry, cm->ioam_rewrite_pool, (
-                                               {
-                                               ioam_cache_entry_free (entry);
-                                               }));
+  pool_foreach (entry, cm->ioam_rewrite_pool)
+  {
+    ioam_cache_entry_free (entry);
+  }
   pool_free (cm->ioam_rewrite_pool);
   cm->ioam_rewrite_pool = 0;
   vec_free (cm->sr_rewrite_template);
@@ -605,20 +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);
 }