acl-plugin: don't attempt to delete the ACLs on interface deletion if ACL plugin... 42/8042/2
authorAndrew Yourtchenko <ayourtch@gmail.com>
Mon, 14 Aug 2017 18:49:23 +0000 (20:49 +0200)
committerNeale Ranns <nranns@cisco.com>
Tue, 15 Aug 2017 15:00:59 +0000 (15:00 +0000)
With the addition of the own heap, the delete routines called from interface deletion
callback may attempt to initialize the ACL plugin heap. This is obviously not
a desirable condition - so, return early from the callback if the ACL plugin
heap has not been initialized yet - there is for sure nothing to clean up.

Change-Id: I08a6ae725294016ff5824189ade91c288e2c473b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
src/plugins/acl/acl.c

index a0057cd..645c6c9 100644 (file)
@@ -1945,6 +1945,10 @@ static clib_error_t *
 acl_sw_interface_add_del (vnet_main_t * vnm, u32 sw_if_index, u32 is_add)
 {
   acl_main_t *am = &acl_main;
+  if (0 == am->acl_mheap) {
+    /* ACL heap is not initialized, so definitely nothing to do. */
+    return 0;
+  }
   if (0 == is_add) {
     vlib_process_signal_event (am->vlib_main, am->fa_cleaner_node_index,
                                ACL_FA_CLEANER_DELETE_BY_SW_IF_INDEX, sw_if_index);