acl: use the global heap when allocating the lookup context

The "ACL as a service" lookup infra is shared, so a global heap must
be used.

Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I86894254b737392c1968b6a581b5a37590376428
diff --git a/src/plugins/acl/acl.c b/src/plugins/acl/acl.c
index 7a53374..4944ebd 100644
--- a/src/plugins/acl/acl.c
+++ b/src/plugins/acl/acl.c
@@ -782,6 +782,8 @@
    */
   vec_validate_init_empty ((*pinout_lc_index_by_sw_if_index), sw_if_index,
 			   ~0);
+  /* lookup context creation is to be done in global heap */
+  void *oldheap = clib_mem_set_heap (am->vlib_main->heap_base);
   if (vec_len (vec_acl_list_index) > 0)
     {
       u32 lc_index = (*pinout_lc_index_by_sw_if_index)[sw_if_index];
@@ -802,6 +804,7 @@
 	  (*pinout_lc_index_by_sw_if_index)[sw_if_index] = ~0;
 	}
     }
+  clib_mem_set_heap (oldheap);
 
   /* ensure ACL processing is enabled/disabled as needed */
   acl_interface_inout_enable_disable (am, sw_if_index, is_input,