From fbecd936bd40e590031ec6d7ff81c3f8827f9f18 Mon Sep 17 00:00:00 2001 From: Andrew Yourtchenko Date: Wed, 12 Aug 2020 08:24:44 +0000 Subject: 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 Change-Id: I86894254b737392c1968b6a581b5a37590376428 --- src/plugins/acl/acl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/acl/acl.c b/src/plugins/acl/acl.c index 7a533743406..4944ebd5e16 100644 --- a/src/plugins/acl/acl.c +++ b/src/plugins/acl/acl.c @@ -782,6 +782,8 @@ acl_interface_set_inout_acl_list (acl_main_t * am, u32 sw_if_index, */ 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 @@ acl_interface_set_inout_acl_list (acl_main_t * am, u32 sw_if_index, (*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, -- cgit 1.2.3-korg