From 32a27b8f61cf7f8bf07b34911478814dcefe9d29 Mon Sep 17 00:00:00 2001 From: Steven Luong Date: Tue, 11 Jun 2019 22:44:20 -0700 Subject: acl vnet vlib: memory leaks Fix memory leaks in acl, vnet, and vlib components. Type: fix Change-Id: I61c84ebbacbbf3215db0d4aaa7699e8d5f8df2da Signed-off-by: Steven Luong (cherry picked from commit 4221c8de596f3f3f66b4cbb36ad2d0c23486030c) --- src/plugins/acl/sess_mgmt_node.c | 1 + src/vlib/error.c | 23 ++++++++++++----------- src/vnet/interface.c | 1 + 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/plugins/acl/sess_mgmt_node.c b/src/plugins/acl/sess_mgmt_node.c index 7da6da4c56f..4070e529edb 100644 --- a/src/plugins/acl/sess_mgmt_node.c +++ b/src/plugins/acl/sess_mgmt_node.c @@ -727,6 +727,7 @@ acl_fa_session_cleaner_process (vlib_main_t * vm, vlib_node_runtime_t * rt, } else { + clib_bitmap_free (pw0->pending_clear_sw_if_index_bitmap); if (clear_all) { /* if we need to clear all, then just clear the interfaces that we are servicing */ diff --git a/src/vlib/error.c b/src/vlib/error.c index a416649cfa7..1a48c9e89c2 100644 --- a/src/vlib/error.c +++ b/src/vlib/error.c @@ -188,18 +188,19 @@ vlib_register_errors (vlib_main_t * vm, /* (re)register the em->counters base address, switch back to main heap */ vlib_stats_pop_heap2 (em->counters, vm->thread_index, oldheap); - { - elog_event_type_t t; - uword i; + if (VLIB_ELOG_MAIN_LOOP > 0) + { + elog_event_type_t t; + uword i; - clib_memset (&t, 0, sizeof (t)); - for (i = 0; i < n_errors; i++) - { - t.format = (char *) format (0, "%v %s: %%d", - n->name, error_strings[i]); - vm->error_elog_event_types[n->error_heap_index + i] = t; - } - } + clib_memset (&t, 0, sizeof (t)); + for (i = 0; i < n_errors; i++) + { + t.format = (char *) format (0, "%v %s: %%d", + n->name, error_strings[i]); + vm->error_elog_event_types[n->error_heap_index + i] = t; + } + } } static clib_error_t * diff --git a/src/vnet/interface.c b/src/vnet/interface.c index dbfe49694f5..124d2ac218c 100644 --- a/src/vnet/interface.c +++ b/src/vnet/interface.c @@ -1011,6 +1011,7 @@ vnet_delete_hw_interface (vnet_main_t * vnm, u32 hw_if_index) vec_free (hw->name); vec_free (hw->hw_address); vec_free (hw->input_node_thread_index_by_queue); + vec_free (hw->rx_mode_by_queue); vec_free (hw->dq_runtime_index_by_queue); pool_put (im->hw_interfaces, hw); -- cgit 1.2.3-korg