vlib: Counter free needs to NULL the allocated counter vector 91/37391/2
authorNeale Ranns <neale@graphiant.com>
Thu, 13 Oct 2022 05:39:11 +0000 (05:39 +0000)
committerOle Tr�an <otroan@employees.org>
Mon, 17 Oct 2022 05:43:14 +0000 (05:43 +0000)
otherwise the next time the counter is validated this is dangling.

Type: fix
Fixes: 58fd481d73

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ifa8d5ff27175cf6dfb30cbf023fa3251fe5c780e

src/plugins/unittest/counter_test.c
src/vlib/counter.c

index 65c03fe..71f8f93 100644 (file)
@@ -89,6 +89,9 @@ test_simple_counter_expand (vlib_main_t *vm)
       epoch = new_epoch;
     }
 
+  vlib_free_simple_counter (&counter);
+  vlib_validate_simple_counter (&counter, 0);
+
   return 0;
 }
 
@@ -136,6 +139,9 @@ test_combined_counter_expand (vlib_main_t *vm)
       epoch = new_epoch;
     }
 
+  vlib_free_combined_counter (&counter);
+  vlib_validate_combined_counter (&counter, 0);
+
   return 0;
 }
 
index 4f375de..9f14d02 100644 (file)
@@ -108,7 +108,10 @@ vlib_free_simple_counter (vlib_simple_counter_main_t * cm)
       vec_free (cm->counters);
     }
   else
-    vlib_stats_remove_entry (cm->stats_entry_index);
+    {
+      vlib_stats_remove_entry (cm->stats_entry_index);
+      cm->counters = NULL;
+    }
 }
 
 void
@@ -176,7 +179,10 @@ vlib_free_combined_counter (vlib_combined_counter_main_t * cm)
       vec_free (cm->counters);
     }
   else
-    vlib_stats_remove_entry (cm->stats_entry_index);
+    {
+      vlib_stats_remove_entry (cm->stats_entry_index);
+      cm->counters = NULL;
+    }
 }
 
 u32